application · active

TopoloCommerce

TopoloCommerce is the multi-vertical commerce application for Topolo organizations that operate one or many venues, built on a shared commerce core with optional vertical packs enabled per venue. The workspace ships a Worker API that owns org and venue settings, module resolution, catalog state, guest sessions, carts, orders, service requests, and device metadata; an authenticated ops app for org and chain operations; a tablet-first station app for kitchen, POS, bar, and expo execution; and a public guest runtime. A local Venue Edge service acts as the venue authority for low-latency execution and syncs edge-authored operational records back to the cloud.

Documentation map

  • TopoloCommerce — Public overview of the multi-vertical commerce platform for venue operations, guest runtimes, and staff execution.

Authority and runtime

System ID
topolo-commerce
App IDs
app_topolo_commerce
Owners
commerce
Repositories
apps/TopoloCommerce
Hosts
https://commerce.topolo.app, https://commerce-api.topolo.app, https://guest.topolo.app, https://station-commerce.topolo.app, https://commerce.stg.topolo.us, https://commerce-api.stg.topolo.us, https://guest.stg.topolo.us, https://station-commerce.stg.topolo.us
Dependencies
topolo-auth, applications-packages, topolo-mdm, topolo-nexus, topolo-device-platform, topolo-pay

Security and data ownership

Risk tier
high
Tenant isolation
organization_scoped
Privacy classification
restricted
Storage
d1, external_provider, r2
Export and deletion
planned
Enterprise ready
no

Source-derived capability inventory

Source revisions: apps/TopoloCommerce@76e2638beb52f038bbe3095e1a3b2e8fb83ce886

Declared actions: 66 · API routes: 100 · UI routes: 27

{
  "id": "topolo-commerce",
  "name": "TopoloCommerce",
  "slug": "topolo-commerce",
  "kind": "application",
  "visibility": "public",
  "repo_paths": [
    "apps/TopoloCommerce"
  ],
  "source_revisions": [
    {
      "source_path": "apps/TopoloCommerce",
      "repository": "apps/TopoloCommerce",
      "revision": "76e2638beb52f038bbe3095e1a3b2e8fb83ce886",
      "ref": "origin/staging"
    }
  ],
  "source_counts": {
    "source_files": 317,
    "test_files": 121,
    "test_cases": 0,
    "migration_files": 44,
    "database_tables": 0,
    "manifests": 1,
    "deploy_targets": 4,
    "actions": 66,
    "mobile_contracts": 1,
    "notifications": 8,
    "package_manifests": 8,
    "deployment_configs": 0
  },
  "manifests": [
    {
      "source_path": "apps/TopoloCommerce/topolo.app.json",
      "service_slug": "topolo-commerce",
      "name": "topolo-commerce",
      "app_id": "app_topolo_commerce",
      "compatibility_date": "2026-04-10",
      "primary_target": "ops",
      "environments": [
        "development",
        "production",
        "staging"
      ],
      "targets": [
        {
          "name": "api",
          "kind": "worker",
          "directory": "apps/api",
          "main": "src/index.js",
          "worker_name": "topolo-commerce-api",
          "subdomain": null,
          "healthcheck_path": "/health",
          "variable_names": [
            "APP_ID",
            "COMMERCE_PUBLIC_BASE_URL",
            "CORS_ORIGINS",
            "DEVICE_OFFLINE_AFTER_SECONDS",
            "ENVIRONMENT",
            "GUEST_WEB_ORIGIN",
            "MDM_API_URL",
            "NEXUS_GATEWAY_URL",
            "NEXUS_VOICE_FALLBACK_MODEL",
            "NEXUS_VOICE_FALLBACK_PROVIDER",
            "NEXUS_VOICE_FINAL_FALLBACK_MODEL",
            "NEXUS_VOICE_FINAL_FALLBACK_PROVIDER",
            "NEXUS_VOICE_MODEL",
            "NEXUS_VOICE_PROVIDER",
            "NEXUS_VOICE_TRANSCRIPTION_MODEL",
            "QURO_API_URL",
            "QURO_REDIRECT_ORIGIN",
            "SEED_CONTRACT_VERSION",
            "SERVICE_SLUG",
            "TOPOLO_AUTH_URL",
            "TOPOLO_NOTIFY_URL"
          ],
          "secret_names": [],
          "bindings": [
            {
              "kind": "d1",
              "binding": "COMMERCE_CORE_DB",
              "target": null
            },
            {
              "kind": "d1",
              "binding": "COMMERCE_ORDERS_DB",
              "target": null
            },
            {
              "kind": "d1",
              "binding": "COMMERCE_SYNC_DB",
              "target": null
            },
            {
              "kind": "d1",
              "binding": "COMMERCE_PAYMENTS_DB",
              "target": null
            },
            {
              "kind": "r2",
              "binding": "COMMERCE_ASSETS",
              "target": null
            },
            {
              "kind": "durableObjects",
              "binding": "VENUE_QUEUE_COORDINATOR",
              "target": null
            },
            {
              "kind": "services",
              "binding": "TOPOLO_NEXUS",
              "target": null
            },
            {
              "kind": "services",
              "binding": "TOPOLO_NEXUS",
              "target": null
            },
            {
              "kind": "services",
              "binding": "TOPOLO_MDM",
              "target": null
            },
            {
              "kind": "services",
              "binding": "TOPOLO_MDM",
              "target": null
            }
          ]
        },
        {
          "name": "ops",
          "kind": "worker",
          "directory": "apps/ops",
          "main": "src/worker.ts",
          "worker_name": "topolo-commerce-ops-web",
          "subdomain": "commerce",
          "healthcheck_path": null,
          "variable_names": [
            "AUTH_API_URL",
            "VITE_COMMERCE_API_URL"
          ],
          "secret_names": [],
          "bindings": [
            {
              "kind": "services",
              "binding": "API",
              "target": null
            }
          ]
        },
        {
          "name": "guest",
          "kind": "worker",
          "directory": "apps/guest",
          "main": "src/worker.ts",
          "worker_name": "topolo-commerce-guest-web",
          "subdomain": "guest",
          "healthcheck_path": null,
          "variable_names": [
            "AUTH_API_URL",
            "VITE_COMMERCE_API_URL"
          ],
          "secret_names": [],
          "bindings": [
            {
              "kind": "services",
              "binding": "API",
              "target": null
            }
          ]
        },
        {
          "name": "station",
          "kind": "worker",
          "directory": "apps/station",
          "main": "src/worker.ts",
          "worker_name": "topolo-commerce-station-web",
          "subdomain": "station-commerce",
          "healthcheck_path": null,
          "variable_names": [
            "AUTH_API_URL",
            "VITE_COMMERCE_API_URL"
          ],
          "secret_names": [],
          "bindings": [
            {
              "kind": "services",
              "binding": "API",
              "target": null
            }
          ]
        }
      ],
      "notifications": [
        "commerce.catalog.publish_failed",
        "commerce.device.offline",
        "commerce.order.cancelled",
        "commerce.order.confirmed",
        "commerce.order.created",
        "commerce.order.ready",
        "commerce.service_request.created",
        "commerce.service_request.status_changed"
      ],
      "notification_contract": {
        "source_path": "topolo.notification-contracts.json",
        "role": "producer",
        "schema_version": 1,
        "owner_app_id": "app_topolo_commerce",
        "events": [
          {
            "type": "commerce.catalog.publish_failed",
            "version": 1,
            "description": "A rejected live-catalog publication attempt was persisted before delivery to its operator.",
            "status": "published",
            "payloadSchema": {
              "type": "object",
              "required": [
                "title",
                "body",
                "object_id",
                "attempt_id",
                "catalog_id",
                "revision",
                "failure_reason",
                "occurred_at",
                "cta_url"
              ],
              "properties": {
                "title": {
                  "type": "string",
                  "minLength": 1
                },
                "body": {
                  "type": "string",
                  "minLength": 1
                },
                "object_id": {
                  "type": "string",
                  "minLength": 1
                },
                "attempt_id": {
                  "type": "string",
                  "minLength": 1
                },
                "catalog_id": {
                  "type": "string",
                  "minLength": 1
                },
                "revision": {
                  "type": "integer",
                  "minimum": 1
                },
                "failure_reason": {
                  "type": "string",
                  "minLength": 1
                },
                "surface": {
                  "type": "string",
                  "const": "action"
                },
                "action_kind": {
                  "type": "string",
                  "const": "resolve"
                },
                "action_status": {
                  "type": "string",
                  "const": "open"
                },
                "priority": {
                  "type": "string",
                  "const": "high"
                },
                "category": {
                  "type": "string",
                  "const": "commerce"
                },
                "severity": {
                  "type": "string",
                  "const": "critical"
                },
                "object_type": {
                  "type": "string",
                  "const": "commerce_catalog_publish"
                },
                "occurred_at": {
                  "type": "string",
                  "format": "date-time"
                },
                "cta_url": {
                  "type": "string",
                  "format": "uri"
                }
              },
              "additionalProperties": false
            },
            "examples": [
              {
                "title": "Catalog publication failed: Dinner",
                "body": "A published catalog requires at least one section with one item.",
                "object_id": "attempt_1",
                "attempt_id": "attempt_1",
                "catalog_id": "catalog_1",
                "revision": 3,
                "failure_reason": "A published catalog requires at least one section with one item.",
                "surface": "action",
                "action_kind": "resolve",
                "action_status": "open",
                "priority": "high",
                "category": "commerce",
                "severity": "critical",
                "object_type": "commerce_catalog_publish",
                "occurred_at": "2026-07-20T00:00:00.000Z",
                "cta_url": "https://commerce.topolo.app/venues/venue_1/catalog"
              }
            ],
            "dataClassification": "internal",
            "sensitiveFields": [
              "failure_reason"
            ],
            "recipients": {
              "modes": [
                "organization_member"
              ],
              "externalAddress": "forbidden"
            },
            "idempotency": {
              "required": true,
              "pattern": "^commerce:catalog-publish-failed:"
            }
          },
          {
            "type": "commerce.device.offline",
            "version": 1,
            "description": "A venue edge device exceeded its configured heartbeat threshold and a durable incident was committed before delivery.",
            "status": "published",
            "payloadSchema": {
              "type": "object",
              "required": [
                "title",
                "body",
                "object_id",
                "device_id",
                "device_label",
                "last_seen_at",
                "occurred_at",
                "cta_url"
              ],
              "properties": {
                "title": {
                  "type": "string",
                  "minLength": 1
                },
                "body": {
                  "type": "string",
                  "minLength": 1
                },
                "object_id": {
                  "type": "string",
                  "minLength": 1
                },
                "device_id": {
                  "type": "string",
                  "minLength": 1
                },
                "device_label": {
                  "type": "string",
                  "minLength": 1
                },
                "last_seen_at": {
                  "type": "string",
                  "format": "date-time"
                },
                "surface": {
                  "type": "string",
                  "const": "action"
                },
                "action_kind": {
                  "type": "string",
                  "const": "resolve"
                },
                "action_status": {
                  "type": "string",
                  "const": "open"
                },
                "priority": {
                  "type": "string",
                  "const": "urgent"
                },
                "category": {
                  "type": "string",
                  "const": "commerce"
                },
                "severity": {
                  "type": "string",
                  "const": "critical"
                },
                "object_type": {
                  "type": "string",
                  "const": "commerce_device"
                },
                "occurred_at": {
                  "type": "string",
                  "format": "date-time"
                },
                "cta_url": {
                  "type": "string",
                  "format": "uri"
                }
              },
              "additionalProperties": false
            },
            "examples": [
              {
                "title": "Device offline: Kitchen Station",
                "body": "Kitchen Station has not checked in for 900 seconds.",
                "object_id": "device_1",
                "device_id": "device_1",
                "device_label": "Kitchen Station",
                "last_seen_at": "2026-07-20T00:00:00.000Z",
                "surface": "action",
                "action_kind": "resolve",
                "action_status": "open",
                "priority": "urgent",
                "category": "commerce",
                "severity": "critical",
                "object_type": "commerce_device",
                "occurred_at": "2026-07-20T00:15:00.000Z",
                "cta_url": "https://commerce.topolo.app/venues/venue_1/devices"
              }
            ],
            "dataClassification": "internal",
            "sensitiveFields": [
              "device_label"
            ],
            "recipients": {
              "modes": [
                "organization_member"
              ],
              "externalAddress": "forbidden"
            },
            "idempotency": {
              "required": true,
              "pattern": "^commerce:device-offline:"
            }
          },
          {
            "type": "commerce.order.created",
            "version": 1,
            "description": "A new order and its operations ticket were committed before venue-staff delivery.",
            "status": "published",
            "payloadSchema": {
              "type": "object",
              "required": [
                "title",
                "body",
                "object_id",
                "order_id",
                "status",
                "total_cents",
                "occurred_at",
                "cta_url"
              ],
              "properties": {
                "title": {
                  "type": "string",
                  "minLength": 1
                },
                "body": {
                  "type": "string",
                  "minLength": 1
                },
                "object_id": {
                  "type": "string",
                  "minLength": 1
                },
                "order_id": {
                  "type": "string",
                  "minLength": 1
                },
                "status": {
                  "type": "string",
                  "const": "queued"
                },
                "total_cents": {
                  "type": "integer",
                  "minimum": 0
                },
                "surface": {
                  "type": "string",
                  "const": "notification"
                },
                "priority": {
                  "type": "string",
                  "const": "normal"
                },
                "category": {
                  "type": "string",
                  "const": "commerce"
                },
                "severity": {
                  "type": "string",
                  "const": "info"
                },
                "object_type": {
                  "type": "string",
                  "const": "commerce_order"
                },
                "occurred_at": {
                  "type": "string",
                  "format": "date-time"
                },
                "cta_url": {
                  "type": "string",
                  "format": "uri"
                }
              },
              "additionalProperties": false
            },
            "examples": [
              {
                "title": "New commerce order",
                "body": "Guest order: Charred Corn Toast",
                "object_id": "order_1",
                "order_id": "order_1",
                "status": "queued",
                "total_cents": 1200,
                "surface": "notification",
                "priority": "normal",
                "category": "commerce",
                "severity": "info",
                "object_type": "commerce_order",
                "occurred_at": "2026-07-20T00:00:00.000Z",
                "cta_url": "https://commerce.topolo.app/venues/venue_1/queues"
              }
            ],
            "dataClassification": "confidential",
            "sensitiveFields": [
              "body"
            ],
            "recipients": {
              "modes": [
                "organization_member"
              ],
              "externalAddress": "forbidden"
            },
            "idempotency": {
              "required": true,
              "pattern": "^commerce:order-created:"
            }
          },
          {
            "type": "commerce.order.confirmed",
            "version": 1,
            "description": "An order moved durably from the queue into active fulfilment before delivery.",
            "status": "published",
            "payloadSchema": {
              "type": "object",
              "required": [
                "title",
                "body",
                "object_id",
                "order_id",
                "previous_status",
                "status",
                "total_cents",
                "occurred_at",
                "cta_url"
              ],
              "properties": {
                "title": {
                  "type": "string",
                  "minLength": 1
                },
                "body": {
                  "type": "string",
                  "minLength": 1
                },
                "object_id": {
                  "type": "string",
                  "minLength": 1
                },
                "order_id": {
                  "type": "string",
                  "minLength": 1
                },
                "previous_status": {
                  "type": "string",
                  "minLength": 1
                },
                "status": {
                  "type": "string",
                  "const": "active"
                },
                "total_cents": {
                  "type": "integer",
                  "minimum": 0
                },
                "surface": {
                  "type": "string",
                  "const": "action"
                },
                "action_kind": {
                  "type": "string",
                  "const": "complete"
                },
                "action_status": {
                  "type": "string",
                  "const": "open"
                },
                "priority": {
                  "type": "string",
                  "const": "normal"
                },
                "category": {
                  "type": "string",
                  "const": "commerce"
                },
                "severity": {
                  "type": "string",
                  "const": "info"
                },
                "object_type": {
                  "type": "string",
                  "const": "commerce_order"
                },
                "occurred_at": {
                  "type": "string",
                  "format": "date-time"
                },
                "cta_url": {
                  "type": "string",
                  "format": "uri"
                }
              },
              "additionalProperties": false
            },
            "examples": [
              {
                "title": "Order confirmed",
                "body": "Guest order: Charred Corn Toast",
                "object_id": "order_1",
                "order_id": "order_1",
                "previous_status": "queued",
                "status": "active",
                "total_cents": 1200,
                "surface": "action",
                "action_kind": "complete",
                "action_status": "open",
                "priority": "normal",
                "category": "commerce",
                "severity": "info",
                "object_type": "commerce_order",
                "occurred_at": "2026-07-20T00:01:00.000Z",
                "cta_url": "https://commerce.topolo.app/venues/venue_1/queues"
              }
            ],
            "dataClassification": "confidential",
            "sensitiveFields": [
              "body"
            ],
            "recipients": {
              "modes": [
                "organization_member"
              ],
              "externalAddress": "forbidden"
            },
            "idempotency": {
              "required": true,
              "pattern": "^commerce:order-confirmed:"
            }
          },
          {
            "type": "commerce.order.ready",
            "version": 1,
            "description": "An order moved durably into the completed and ready terminal state before delivery.",
            "status": "published",
            "payloadSchema": {
              "type": "object",
              "required": [
                "title",
                "body",
                "object_id",
                "order_id",
                "previous_status",
                "status",
                "total_cents",
                "occurred_at",
                "cta_url"
              ],
              "properties": {
                "title": {
                  "type": "string",
                  "minLength": 1
                },
                "body": {
                  "type": "string",
                  "minLength": 1
                },
                "object_id": {
                  "type": "string",
                  "minLength": 1
                },
                "order_id": {
                  "type": "string",
                  "minLength": 1
                },
                "previous_status": {
                  "type": "string",
                  "minLength": 1
                },
                "status": {
                  "type": "string",
                  "const": "completed"
                },
                "total_cents": {
                  "type": "integer",
                  "minimum": 0
                },
                "surface": {
                  "type": "string",
                  "const": "notification"
                },
                "priority": {
                  "type": "string",
                  "const": "high"
                },
                "category": {
                  "type": "string",
                  "const": "commerce"
                },
                "severity": {
                  "type": "string",
                  "const": "success"
                },
                "object_type": {
                  "type": "string",
                  "const": "commerce_order"
                },
                "occurred_at": {
                  "type": "string",
                  "format": "date-time"
                },
                "cta_url": {
                  "type": "string",
                  "format": "uri"
                }
              },
              "additionalProperties": false
            },
            "examples": [
              {
                "title": "Order ready",
                "body": "Guest order: Charred Corn Toast",
                "object_id": "order_1",
                "order_id": "order_1",
                "previous_status": "active",
                "status": "completed",
                "total_cents": 1200,
                "surface": "notification",
                "priority": "high",
                "category": "commerce",
                "severity": "success",
                "object_type": "commerce_order",
                "occurred_at": "2026-07-20T00:10:00.000Z",
                "cta_url": "https://commerce.topolo.app/venues/venue_1/queues"
              }
            ],
            "dataClassification": "confidential",
            "sensitiveFields": [
              "body"
            ],
            "recipients": {
              "modes": [
                "organization_member"
              ],
              "externalAddress": "forbidden"
            },
            "idempotency": {
              "required": true,
              "pattern": "^commerce:order-ready:"
            }
          },
          {
            "type": "commerce.order.cancelled",
            "version": 1,
            "description": "An order moved durably into the cancelled terminal state before delivery.",
            "status": "published",
            "payloadSchema": {
              "type": "object",
              "required": [
                "title",
                "body",
                "object_id",
                "order_id",
                "previous_status",
                "status",
                "total_cents",
                "occurred_at",
                "cta_url"
              ],
              "properties": {
                "title": {
                  "type": "string",
                  "minLength": 1
                },
                "body": {
                  "type": "string",
                  "minLength": 1
                },
                "object_id": {
                  "type": "string",
                  "minLength": 1
                },
                "order_id": {
                  "type": "string",
                  "minLength": 1
                },
                "previous_status": {
                  "type": "string",
                  "minLength": 1
                },
                "status": {
                  "type": "string",
                  "const": "cancelled"
                },
                "total_cents": {
                  "type": "integer",
                  "minimum": 0
                },
                "surface": {
                  "type": "string",
                  "const": "action"
                },
                "action_kind": {
                  "type": "string",
                  "const": "review"
                },
                "action_status": {
                  "type": "string",
                  "const": "open"
                },
                "priority": {
                  "type": "string",
                  "const": "high"
                },
                "category": {
                  "type": "string",
                  "const": "commerce"
                },
                "severity": {
                  "type": "string",
                  "const": "warning"
                },
                "object_type": {
                  "type": "string",
                  "const": "commerce_order"
                },
                "occurred_at": {
                  "type": "string",
                  "format": "date-time"
                },
                "cta_url": {
                  "type": "string",
                  "format": "uri"
                }
              },
              "additionalProperties": false
            },
            "examples": [
              {
                "title": "Order cancelled",
                "body": "Guest order: Charred Corn Toast",
                "object_id": "order_2",
                "order_id": "order_2",
                "previous_status": "queued",
                "status": "cancelled",
                "total_cents": 1200,
                "surface": "action",
                "action_kind": "review",
                "action_status": "open",
                "priority": "high",
                "category": "commerce",
                "severity": "warning",
                "object_type": "commerce_order",
                "occurred_at": "2026-07-20T00:02:00.000Z",
                "cta_url": "https://commerce.topolo.app/venues/venue_1/queues"
              }
            ],
            "dataClassification": "confidential",
            "sensitiveFields": [
              "body"
            ],
            "recipients": {
              "modes": [
                "organization_member"
              ],
              "externalAddress": "forbidden"
            },
            "idempotency": {
              "required": true,
              "pattern": "^commerce:order-cancelled:"
            }
          },
          {
            "type": "commerce.service_request.created",
            "version": 1,
            "description": "A guest service request and its operations ticket were committed before venue-staff delivery.",
            "status": "published",
            "payloadSchema": {
              "type": "object",
              "required": [
                "title",
                "body",
                "object_id",
                "service_request_id",
                "status",
                "occurred_at",
                "cta_url"
              ],
              "properties": {
                "title": {
                  "type": "string",
                  "minLength": 1
                },
                "body": {
                  "type": "string",
                  "minLength": 1
                },
                "object_id": {
                  "type": "string",
                  "minLength": 1
                },
                "service_request_id": {
                  "type": "string",
                  "minLength": 1
                },
                "status": {
                  "type": "string",
                  "const": "queued"
                },
                "surface": {
                  "type": "string",
                  "const": "action"
                },
                "action_kind": {
                  "type": "string",
                  "const": "complete"
                },
                "action_status": {
                  "type": "string",
                  "const": "open"
                },
                "priority": {
                  "type": "string",
                  "const": "high"
                },
                "category": {
                  "type": "string",
                  "const": "commerce"
                },
                "severity": {
                  "type": "string",
                  "const": "info"
                },
                "object_type": {
                  "type": "string",
                  "const": "commerce_service_request"
                },
                "occurred_at": {
                  "type": "string",
                  "format": "date-time"
                },
                "cta_url": {
                  "type": "string",
                  "format": "uri"
                }
              },
              "additionalProperties": false
            },
            "examples": [
              {
                "title": "New service request",
                "body": "Need napkins",
                "object_id": "request_1",
                "service_request_id": "request_1",
                "status": "queued",
                "surface": "action",
                "action_kind": "complete",
                "action_status": "open",
                "priority": "high",
                "category": "commerce",
                "severity": "info",
                "object_type": "commerce_service_request",
                "occurred_at": "2026-07-20T00:00:00.000Z",
                "cta_url": "https://commerce.topolo.app/venues/venue_1/queues"
              }
            ],
            "dataClassification": "confidential",
            "sensitiveFields": [
              "body"
            ],
            "recipients": {
              "modes": [
                "organization_member"
              ],
              "externalAddress": "forbidden"
            },
            "idempotency": {
              "required": true,
              "pattern": "^commerce:service-request-created:"
            }
          },
          {
            "type": "commerce.service_request.status_changed",
            "version": 1,
            "description": "A service request changed durable workflow status before delivery.",
            "status": "published",
            "payloadSchema": {
              "type": "object",
              "required": [
                "title",
                "body",
                "object_id",
                "service_request_id",
                "previous_status",
                "status",
                "occurred_at",
                "cta_url"
              ],
              "properties": {
                "title": {
                  "type": "string",
                  "minLength": 1
                },
                "body": {
                  "type": "string",
                  "minLength": 1
                },
                "object_id": {
                  "type": "string",
                  "minLength": 1
                },
                "service_request_id": {
                  "type": "string",
                  "minLength": 1
                },
                "previous_status": {
                  "type": "string",
                  "minLength": 1
                },
                "status": {
                  "type": "string",
                  "minLength": 1
                },
                "surface": {
                  "type": "string",
                  "const": "notification"
                },
                "priority": {
                  "type": "string",
                  "const": "normal"
                },
                "category": {
                  "type": "string",
                  "const": "commerce"
                },
                "severity": {
                  "type": "string",
                  "enum": [
                    "info",
                    "success",
                    "warning"
                  ]
                },
                "object_type": {
                  "type": "string",
                  "const": "commerce_service_request"
                },
                "occurred_at": {
                  "type": "string",
                  "format": "date-time"
                },
                "cta_url": {
                  "type": "string",
                  "format": "uri"
                }
              },
              "additionalProperties": false
            },
            "examples": [
              {
                "title": "Service request updated",
                "body": "Need napkins",
                "object_id": "request_1",
                "service_request_id": "request_1",
                "previous_status": "queued",
                "status": "cancelled",
                "surface": "notification",
                "priority": "normal",
                "category": "commerce",
                "severity": "warning",
                "object_type": "commerce_service_request",
                "occurred_at": "2026-07-20T00:02:00.000Z",
                "cta_url": "https://commerce.topolo.app/venues/venue_1/queues"
              }
            ],
            "dataClassification": "confidential",
            "sensitiveFields": [
              "body"
            ],
            "recipients": {
              "modes": [
                "organization_member"
              ],
              "externalAddress": "forbidden"
            },
            "idempotency": {
              "required": true,
              "pattern": "^commerce:service-request-status:"
            }
          }
        ]
      },
      "actions": [
        {
          "name": "organizations.data.export",
          "title": "Export organization data",
          "description": "Export organization-authored Commerce data and object metadata without credentials or binary payloads.",
          "method": "GET",
          "path": "/api/organizations/{organizationId}/data",
          "permission": "privacy:read",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "organizationId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "organizationId"
            ],
            "additionalProperties": false
          },
          "outputSchema": {
            "type": "object",
            "additionalProperties": true
          },
          "target": "api",
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {
              "organizationId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-commerce --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/organizations/example/data",
              "body": null
            },
            "effects": "Reads state through GET /api/organizations/{organizationId}/data 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/organizations/*/data",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "organizations.data.erase",
          "title": "Erase organization data",
          "description": "Erase organization-authored Commerce data, object storage, and live queue projections after literal ERASE confirmation.",
          "method": "DELETE",
          "path": "/api/organizations/{organizationId}/data",
          "permission": "privacy:write",
          "readOnly": false,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "organizationId": {
                "type": "string",
                "minLength": 1
              },
              "confirmation": {
                "type": "string",
                "const": "ERASE"
              }
            },
            "required": [
              "organizationId",
              "confirmation"
            ],
            "additionalProperties": false
          },
          "outputSchema": {
            "type": "object",
            "additionalProperties": true
          },
          "target": "api",
          "destructive": true,
          "requiresConfirmation": true,
          "agentAccess": "confirm",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {
              "organizationId": "example",
              "confirmation": "ERASE"
            },
            "cli_example": [
              "topolo actions --service topolo-commerce --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/organizations/example/data",
              "body": null
            },
            "effects": "May change state through DELETE /api/organizations/{organizationId}/data. 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/organizations/*/data",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "workspaces.delete",
          "title": "Delete workspace",
          "description": "Delete an empty non-default Commerce workspace.",
          "method": "DELETE",
          "path": "/api/workspaces/{workspaceId}",
          "permission": "workspace:delete",
          "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",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {
              "workspaceId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-commerce --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": "widget.get",
          "title": "Get widget summary",
          "description": "Get the TopoloOne widget summary for this service.",
          "method": "GET",
          "path": "/api/widget",
          "permission": "dashboard:read",
          "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-commerce --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": "org.context.get",
          "title": "Get commerce context",
          "description": "Get commerce organization context.",
          "method": "GET",
          "path": "/api/org/context",
          "permission": "dashboard:read",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {},
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Get commerce context.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "documentation": {
            "example_input": {},
            "cli_example": [
              "topolo actions --service topolo-commerce --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/org/context",
              "body": null
            },
            "effects": "Reads state through GET /api/org/context 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/org/context",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "venues.list",
          "title": "List venues",
          "description": "List commerce venues.",
          "method": "GET",
          "path": "/api/venues",
          "permission": "venues:read",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {},
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by List venues.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "documentation": {
            "example_input": {},
            "cli_example": [
              "topolo actions --service topolo-commerce --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/venues",
              "body": null
            },
            "effects": "Reads state through GET /api/venues 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/venues",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "venues.create",
          "title": "Create venue",
          "description": "Create a commerce venue.",
          "method": "POST",
          "path": "/api/venues",
          "permission": "venues:write",
          "readOnly": false,
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "minLength": 1
              },
              "slug": {
                "type": "string"
              },
              "presetKey": {
                "type": "string"
              },
              "verticalPack": {
                "type": "string"
              },
              "serviceModel": {
                "type": "string"
              },
              "paymentMode": {
                "type": "string"
              },
              "summary": {
                "type": "string"
              },
              "experience": {
                "type": "object",
                "properties": {},
                "additionalProperties": {}
              },
              "moduleOverrides": {
                "type": "object",
                "properties": {},
                "additionalProperties": {}
              },
              "catalogSeed": {
                "type": "object",
                "properties": {},
                "additionalProperties": {}
              },
              "clientMutationId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "name",
              "clientMutationId"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Create venue.",
            "additionalProperties": true
          },
          "destructive": false,
          "agentAccess": "confirm",
          "documentation": {
            "example_input": {
              "name": "example",
              "clientMutationId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-commerce --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/venues",
              "body": {
                "name": "example",
                "clientMutationId": "example"
              }
            },
            "effects": "May change state through POST /api/venues. 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/venues",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "venues.get",
          "title": "Get venue",
          "description": "Get one commerce venue.",
          "method": "GET",
          "path": "/api/venues/{venueId}",
          "permission": "venues:read",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "venueId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "venueId"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Get venue.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "documentation": {
            "example_input": {
              "venueId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-commerce --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/venues/example",
              "body": null
            },
            "effects": "Reads state through GET /api/venues/{venueId} 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/venues/*",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "venues.update",
          "title": "Update venue",
          "description": "Update a Commerce venue.",
          "method": "PUT",
          "path": "/api/venues/{venueId}",
          "permission": "settings:write",
          "readOnly": false,
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "venueId": {
                "type": "string",
                "minLength": 1
              },
              "presetKey": {
                "type": "string"
              },
              "moduleSettings": {
                "type": "object",
                "properties": {},
                "additionalProperties": {}
              },
              "enabledModules": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "disabledModules": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "moduleOverrides": {
                "type": "object",
                "properties": {},
                "additionalProperties": {}
              },
              "clientMutationId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "venueId"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Update venue.",
            "additionalProperties": true
          },
          "destructive": false,
          "agentAccess": "confirm",
          "documentation": {
            "example_input": {
              "venueId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-commerce --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/venues/example",
              "body": {
                "venueId": "example"
              }
            },
            "effects": "May change state through PUT /api/venues/{venueId}. 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/venues/*",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "devices.list",
          "title": "List venue devices",
          "description": "List devices for a venue.",
          "method": "GET",
          "path": "/api/venues/{venueId}/devices",
          "permission": "devices:read",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "venueId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "venueId"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by List venue devices.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "documentation": {
            "example_input": {
              "venueId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-commerce --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/venues/example/devices",
              "body": null
            },
            "effects": "Reads state through GET /api/venues/{venueId}/devices 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/venues/*/devices",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "orders.list",
          "title": "List orders",
          "description": "List commerce orders.",
          "method": "GET",
          "path": "/api/orders",
          "permission": "queues:read",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {},
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by List orders.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "documentation": {
            "example_input": {},
            "cli_example": [
              "topolo actions --service topolo-commerce --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/orders",
              "body": null
            },
            "effects": "Reads state through GET /api/orders 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/orders",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "orders.create",
          "title": "Create order",
          "description": "Create a commerce order.",
          "method": "POST",
          "path": "/api/orders",
          "authorizationMode": "public",
          "readOnly": false,
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "venueId": {
                "type": "string",
                "minLength": 1
              },
              "lines": {
                "minItems": 1,
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "itemId": {
                      "type": "string",
                      "minLength": 1
                    },
                    "quantity": {
                      "type": "integer",
                      "minimum": 1,
                      "maximum": 9007199254740991
                    },
                    "notes": {
                      "type": "string"
                    },
                    "selectedModifiers": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "groupId": {
                            "type": "string",
                            "minLength": 1
                          },
                          "optionIds": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1
                            }
                          }
                        },
                        "required": [
                          "groupId"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "itemId"
                  ],
                  "additionalProperties": false
                }
              },
              "guestSessionId": {
                "type": "string"
              },
              "tableTabMemberId": {
                "type": "string"
              },
              "deviceToken": {
                "type": "string"
              },
              "tableLabel": {
                "type": "string"
              },
              "zoneLabel": {
                "type": "string"
              },
              "note": {
                "type": "string"
              },
              "source": {
                "type": "string"
              },
              "draftOrderId": {
                "type": "string"
              },
              "clientMutationId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "venueId",
              "lines"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Create order.",
            "additionalProperties": true
          },
          "destructive": false,
          "agentAccess": "confirm",
          "documentation": {
            "example_input": {
              "venueId": "example",
              "lines": [
                {
                  "itemId": "example"
                }
              ]
            },
            "cli_example": [
              "topolo actions --service topolo-commerce --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/orders",
              "body": {
                "venueId": "example",
                "lines": [
                  {
                    "itemId": "example"
                  }
                ]
              }
            },
            "effects": "May change state through POST /api/orders. 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/orders",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "service_requests.list",
          "title": "List service requests",
          "description": "List commerce service requests.",
          "method": "GET",
          "path": "/api/service-requests",
          "authorizationMode": "public",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "venueId": {
                "type": "string",
                "minLength": 1
              },
              "guestSessionId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "venueId",
              "guestSessionId"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by List service requests.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "documentation": {
            "example_input": {
              "venueId": "example",
              "guestSessionId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-commerce --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/service-requests",
              "body": null
            },
            "effects": "Reads state through GET /api/service-requests 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/service-requests",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "service_requests.update",
          "title": "Update service request",
          "description": "Update one service request.",
          "method": "PATCH",
          "path": "/api/service-requests/{requestId}",
          "authorizationMode": "public",
          "readOnly": false,
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "requestId": {
                "type": "string",
                "minLength": 1
              },
              "guestSessionId": {
                "type": "string",
                "minLength": 1
              },
              "clientMutationId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "requestId",
              "guestSessionId"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Update service request.",
            "additionalProperties": true
          },
          "destructive": false,
          "agentAccess": "confirm",
          "documentation": {
            "example_input": {
              "requestId": "example",
              "guestSessionId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-commerce --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/service-requests/example",
              "body": {
                "requestId": "example",
                "guestSessionId": "example"
              }
            },
            "effects": "May change state through PATCH /api/service-requests/{requestId}. 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/service-requests/*",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "payment_sessions.create",
          "title": "Create payment session",
          "description": "Create a commerce payment session.",
          "method": "POST",
          "path": "/api/payment-sessions",
          "permission": "payments:create",
          "readOnly": false,
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "venueId": {
                "type": "string",
                "minLength": 1
              },
              "orderId": {
                "type": "string"
              },
              "clientMutationId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "venueId"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Create payment session.",
            "additionalProperties": true
          },
          "destructive": false,
          "agentAccess": "confirm",
          "documentation": {
            "example_input": {
              "venueId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-commerce --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/payment-sessions",
              "body": {
                "venueId": "example"
              }
            },
            "effects": "May change state through POST /api/payment-sessions. 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/payment-sessions",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "publishing.push",
          "title": "Push venue edge update",
          "description": "Push venue edge/runtime state.",
          "method": "POST",
          "path": "/api/venues/{venueId}/edge/push",
          "authorizationMode": "public",
          "readOnly": false,
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "venueId": {
                "type": "string",
                "minLength": 1
              },
              "events": {
                "minItems": 1,
                "maxItems": 100,
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": {}
                }
              },
              "runtimeState": {
                "type": "object",
                "properties": {},
                "additionalProperties": {}
              }
            },
            "required": [
              "venueId",
              "events"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Push venue edge update.",
            "additionalProperties": true
          },
          "destructive": false,
          "agentAccess": "confirm",
          "documentation": {
            "example_input": {
              "venueId": "example",
              "events": [
                {}
              ]
            },
            "cli_example": [
              "topolo actions --service topolo-commerce --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/venues/example/edge/push",
              "body": {
                "venueId": "example",
                "events": [
                  {}
                ]
              }
            },
            "effects": "May change state through POST /api/venues/{venueId}/edge/push. 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/venues/*/edge/push",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "org.module_settings.get",
          "title": "Get module settings",
          "description": "Get Commerce organization module settings.",
          "method": "GET",
          "path": "/api/org/module-settings",
          "permission": "settings:read",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {},
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Get module settings.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "documentation": {
            "example_input": {},
            "cli_example": [
              "topolo actions --service topolo-commerce --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/org/module-settings",
              "body": null
            },
            "effects": "Reads state through GET /api/org/module-settings 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/org/module-settings",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "org.module_settings.update",
          "title": "Update module settings",
          "description": "Update Commerce organization module settings.",
          "method": "PUT",
          "path": "/api/org/module-settings",
          "permission": "settings:write",
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "presetKey": {
                "type": "string"
              },
              "moduleSettings": {
                "type": "object",
                "properties": {},
                "additionalProperties": {}
              },
              "enabledModules": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "disabledModules": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "moduleOverrides": {
                "type": "object",
                "properties": {},
                "additionalProperties": {}
              },
              "clientMutationId": {
                "type": "string",
                "minLength": 1
              }
            },
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Update module settings.",
            "additionalProperties": true
          },
          "readOnly": false,
          "destructive": false,
          "agentAccess": "confirm",
          "documentation": {
            "example_input": {
              "presetKey": "example",
              "moduleSettings": {},
              "enabledModules": [
                "example"
              ]
            },
            "cli_example": [
              "topolo actions --service topolo-commerce --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/org/module-settings",
              "body": {
                "presetKey": "example",
                "moduleSettings": {},
                "enabledModules": [
                  "example"
                ]
              }
            },
            "effects": "May change state through PUT /api/org/module-settings. 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/org/module-settings",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "org.module_settings.resolve",
          "title": "Resolve module settings",
          "description": "Resolve Commerce module settings.",
          "method": "POST",
          "path": "/api/org/module-settings/resolve",
          "permission": "settings:write",
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "presetKey": {
                "type": "string"
              },
              "orgSettings": {
                "type": "object",
                "properties": {},
                "additionalProperties": {}
              },
              "venueOverrides": {
                "type": "object",
                "properties": {},
                "additionalProperties": {}
              }
            },
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Resolve module settings.",
            "additionalProperties": true
          },
          "readOnly": false,
          "destructive": false,
          "agentAccess": "confirm",
          "documentation": {
            "example_input": {
              "presetKey": "example",
              "orgSettings": {},
              "venueOverrides": {}
            },
            "cli_example": [
              "topolo actions --service topolo-commerce --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/org/module-settings/resolve",
              "body": {
                "presetKey": "example",
                "orgSettings": {},
                "venueOverrides": {}
              }
            },
            "effects": "May change state through POST /api/org/module-settings/resolve. 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/org/module-settings/resolve",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "org.hub_tiles.update",
          "title": "Update hub tiles",
          "description": "Update Commerce organization hub tiles.",
          "method": "PUT",
          "path": "/api/org/hub-tiles",
          "permission": "settings:write",
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "tiles": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": {}
                }
              },
              "clientMutationId": {
                "type": "string",
                "minLength": 1
              }
            },
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Update hub tiles.",
            "additionalProperties": true
          },
          "readOnly": false,
          "destructive": false,
          "agentAccess": "confirm",
          "documentation": {
            "example_input": {
              "tiles": [
                {}
              ],
              "clientMutationId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-commerce --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/org/hub-tiles",
              "body": {
                "tiles": [
                  {}
                ],
                "clientMutationId": "example"
              }
            },
            "effects": "May change state through PUT /api/org/hub-tiles. 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/org/hub-tiles",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "venues.experience.get",
          "title": "Get venue experience",
          "description": "Get Commerce venue experience settings.",
          "method": "GET",
          "path": "/api/venues/{venueId}/experience",
          "permission": "venues:read",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "venueId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "venueId"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Get venue experience.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "documentation": {
            "example_input": {
              "venueId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-commerce --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/venues/example/experience",
              "body": null
            },
            "effects": "Reads state through GET /api/venues/{venueId}/experience 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/venues/*/experience",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "venues.experience.update",
          "title": "Update venue experience",
          "description": "Update Commerce venue experience settings.",
          "method": "PUT",
          "path": "/api/venues/{venueId}/experience",
          "permission": "settings:write",
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "venueId": {
                "type": "string",
                "minLength": 1
              },
              "presentationMode": {
                "type": "string"
              },
              "fontPreset": {
                "type": "string"
              },
              "menuCardStyle": {
                "type": "string"
              },
              "serviceActionStyle": {
                "type": "string"
              },
              "accentColor": {
                "type": "string"
              },
              "currency": {
                "type": "string"
              },
              "locale": {
                "type": "string"
              },
              "brandSurface": {
                "type": "string"
              },
              "logoUrl": {
                "type": "string"
              },
              "orderIntentTimer": {
                "type": "object",
                "properties": {},
                "additionalProperties": {}
              },
              "clientMutationId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "venueId"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Update venue experience.",
            "additionalProperties": true
          },
          "readOnly": false,
          "destructive": false,
          "agentAccess": "confirm",
          "documentation": {
            "example_input": {
              "venueId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-commerce --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/venues/example/experience",
              "body": {
                "venueId": "example"
              }
            },
            "effects": "May change state through PUT /api/venues/{venueId}/experience. 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/venues/*/experience",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "venues.hub_tiles.update",
          "title": "Update venue hub tiles",
          "description": "Update Commerce venue hub tiles.",
          "method": "PUT",
          "path": "/api/venues/{venueId}/hub-tiles",
          "permission": "settings:write",
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "venueId": {
                "type": "string",
                "minLength": 1
              },
              "tiles": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": {}
                }
              },
              "clientMutationId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "venueId"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Update venue hub tiles.",
            "additionalProperties": true
          },
          "readOnly": false,
          "destructive": false,
          "agentAccess": "confirm",
          "documentation": {
            "example_input": {
              "venueId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-commerce --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/venues/example/hub-tiles",
              "body": {
                "venueId": "example"
              }
            },
            "effects": "May change state through PUT /api/venues/{venueId}/hub-tiles. 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/venues/*/hub-tiles",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "venues.catalog.get",
          "title": "Get venue catalog",
          "description": "Get a Commerce venue catalog.",
          "method": "GET",
          "path": "/api/venues/{venueId}/catalog",
          "authorizationMode": "public",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "venueId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "venueId"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Get venue catalog.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "documentation": {
            "example_input": {
              "venueId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-commerce --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/venues/example/catalog",
              "body": null
            },
            "effects": "Reads state through GET /api/venues/{venueId}/catalog 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/venues/*/catalog",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "venues.catalog.update",
          "title": "Update venue catalog",
          "description": "Update a Commerce venue catalog.",
          "method": "PUT",
          "path": "/api/venues/{venueId}/catalog",
          "permission": "catalog:write",
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "venueId": {
                "type": "string",
                "minLength": 1
              },
              "name": {
                "type": "string"
              },
              "kind": {
                "type": "string"
              },
              "sections": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": {}
                }
              },
              "serviceActions": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "clientMutationId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "venueId"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Update venue catalog.",
            "additionalProperties": true
          },
          "readOnly": false,
          "destructive": false,
          "agentAccess": "confirm",
          "documentation": {
            "example_input": {
              "venueId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-commerce --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/venues/example/catalog",
              "body": {
                "venueId": "example"
              }
            },
            "effects": "May change state through PUT /api/venues/{venueId}/catalog. 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/venues/*/catalog",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "venues.beverage_guide.get",
          "title": "Get beverage guide",
          "description": "Get Commerce venue beverage guide.",
          "method": "GET",
          "path": "/api/venues/{venueId}/beverage-guide",
          "authorizationMode": "public",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "venueId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "venueId"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Get beverage guide.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "documentation": {
            "example_input": {
              "venueId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-commerce --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/venues/example/beverage-guide",
              "body": null
            },
            "effects": "Reads state through GET /api/venues/{venueId}/beverage-guide 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/venues/*/beverage-guide",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "venues.resilience_state.get",
          "title": "Get resilience state",
          "description": "Get Commerce venue resilience state.",
          "method": "GET",
          "path": "/api/venues/{venueId}/resilience/state",
          "permission": "venues:read",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "venueId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "venueId"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Get resilience state.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "documentation": {
            "example_input": {
              "venueId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-commerce --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/venues/example/resilience/state",
              "body": null
            },
            "effects": "Reads state through GET /api/venues/{venueId}/resilience/state 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/venues/*/resilience/state",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "venues.devices.link",
          "title": "Link venue device",
          "description": "Link a Commerce venue device.",
          "method": "POST",
          "path": "/api/venues/{venueId}/devices/link",
          "permission": "devices:write",
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "venueId": {
                "type": "string",
                "minLength": 1
              },
              "mdmDeviceId": {
                "type": "string"
              },
              "deviceId": {
                "type": "string"
              },
              "commerceDeviceId": {
                "type": "string"
              },
              "mdmLabel": {
                "type": "string"
              },
              "label": {
                "type": "string"
              },
              "roleKey": {
                "type": "string",
                "minLength": 1
              },
              "status": {
                "type": "string"
              },
              "assignmentMode": {
                "type": "string"
              },
              "assignedStaffId": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "deviceType": {
                "type": "string"
              },
              "authPolicy": {
                "type": "string"
              },
              "localIdentifier": {
                "type": "string"
              },
              "mdmLastSeenAt": {
                "type": "number"
              },
              "mdmManufacturer": {
                "type": "string"
              },
              "mdmModel": {
                "type": "string"
              },
              "mdmSerialNumber": {
                "type": "string"
              },
              "clientMutationId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "venueId",
              "roleKey"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Link venue device.",
            "additionalProperties": true
          },
          "readOnly": false,
          "destructive": false,
          "agentAccess": "confirm",
          "documentation": {
            "example_input": {
              "venueId": "example",
              "roleKey": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-commerce --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/venues/example/devices/link",
              "body": {
                "venueId": "example",
                "roleKey": "example"
              }
            },
            "effects": "May change state through POST /api/venues/{venueId}/devices/link. 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/venues/*/devices/link",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "venues.devices.profile.update",
          "title": "Update venue device profile",
          "description": "Update a Commerce venue device profile.",
          "method": "PUT",
          "path": "/api/venues/{venueId}/devices/{deviceId}/profile",
          "permission": "devices:write",
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "venueId": {
                "type": "string",
                "minLength": 1
              },
              "deviceId": {
                "type": "string",
                "minLength": 1
              },
              "profile": {
                "type": "object",
                "properties": {},
                "additionalProperties": {}
              },
              "mode": {
                "type": "string"
              },
              "kioskState": {
                "type": "string"
              },
              "policyPreset": {
                "type": "string"
              },
              "launcherPackage": {
                "type": "string"
              },
              "launcherTarget": {
                "type": "object",
                "properties": {},
                "additionalProperties": {}
              },
              "contentAssignment": {
                "type": "object",
                "properties": {},
                "additionalProperties": {}
              },
              "metadata": {
                "type": "object",
                "properties": {},
                "additionalProperties": {}
              },
              "clientMutationId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "venueId",
              "deviceId"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Update venue device profile.",
            "additionalProperties": true
          },
          "readOnly": false,
          "destructive": false,
          "agentAccess": "confirm",
          "documentation": {
            "example_input": {
              "venueId": "example",
              "deviceId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-commerce --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/venues/example/devices/example/profile",
              "body": {
                "venueId": "example",
                "deviceId": "example"
              }
            },
            "effects": "May change state through PUT /api/venues/{venueId}/devices/{deviceId}/profile. 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/venues/*/devices/*/profile",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "venues.devices.command.create",
          "title": "Create venue device command",
          "description": "Create a Commerce venue device command.",
          "method": "POST",
          "path": "/api/venues/{venueId}/devices/{deviceId}/command",
          "permission": "devices:write",
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "venueId": {
                "type": "string",
                "minLength": 1
              },
              "deviceId": {
                "type": "string",
                "minLength": 1
              },
              "action": {
                "type": "string",
                "minLength": 1
              },
              "commandId": {
                "type": "string"
              },
              "parameters": {
                "type": "object",
                "properties": {},
                "additionalProperties": {}
              },
              "packageName": {
                "type": "string"
              },
              "clientMutationId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "venueId",
              "deviceId",
              "action"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Create venue device command.",
            "additionalProperties": true
          },
          "readOnly": false,
          "destructive": false,
          "agentAccess": "confirm",
          "documentation": {
            "example_input": {
              "venueId": "example",
              "deviceId": "example",
              "action": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-commerce --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/venues/example/devices/example/command",
              "body": {
                "venueId": "example",
                "deviceId": "example",
                "action": "example"
              }
            },
            "effects": "May change state through POST /api/venues/{venueId}/devices/{deviceId}/command. 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/venues/*/devices/*/command",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "venues.payment_reconciliations.list",
          "title": "List payment reconciliations",
          "description": "List Commerce venue payment reconciliations.",
          "method": "GET",
          "path": "/api/venues/{venueId}/payment-reconciliations",
          "permission": "venues:read",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "venueId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "venueId"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by List payment reconciliations.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "documentation": {
            "example_input": {
              "venueId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-commerce --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/venues/example/payment-reconciliations",
              "body": null
            },
            "effects": "Reads state through GET /api/venues/{venueId}/payment-reconciliations 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/venues/*/payment-reconciliations",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "venues.payment_reconciliations.create",
          "title": "Create payment reconciliation",
          "description": "Create a Commerce venue payment reconciliation.",
          "method": "POST",
          "path": "/api/venues/{venueId}/payment-reconciliations",
          "permission": "payments:create",
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "venueId": {
                "type": "string",
                "minLength": 1
              },
              "orderId": {
                "type": "string",
                "minLength": 1
              },
              "id": {
                "type": "string"
              },
              "settlementKind": {
                "type": "string",
                "minLength": 1
              },
              "status": {
                "type": "string"
              },
              "amountCents": {
                "type": "number"
              },
              "externalReference": {
                "type": "string"
              },
              "note": {
                "type": "string"
              },
              "source": {
                "type": "string"
              },
              "recordedAt": {
                "type": "number"
              },
              "clientMutationId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "venueId",
              "orderId",
              "settlementKind"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Create payment reconciliation.",
            "additionalProperties": true
          },
          "readOnly": false,
          "destructive": false,
          "agentAccess": "confirm",
          "documentation": {
            "example_input": {
              "venueId": "example",
              "orderId": "example",
              "settlementKind": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-commerce --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/venues/example/payment-reconciliations",
              "body": {
                "venueId": "example",
                "orderId": "example",
                "settlementKind": "example"
              }
            },
            "effects": "May change state through POST /api/venues/{venueId}/payment-reconciliations. 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/venues/*/payment-reconciliations",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "venues.sync_policy.get",
          "title": "Get sync policy",
          "description": "Get Commerce venue sync policy.",
          "method": "GET",
          "path": "/api/venues/{venueId}/sync-policy",
          "permission": "venues:read",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "venueId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "venueId"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Get sync policy.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "documentation": {
            "example_input": {
              "venueId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-commerce --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/venues/example/sync-policy",
              "body": null
            },
            "effects": "Reads state through GET /api/venues/{venueId}/sync-policy 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/venues/*/sync-policy",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "venues.sync_policy.update",
          "title": "Update sync policy",
          "description": "Update Commerce venue sync policy.",
          "method": "PUT",
          "path": "/api/venues/{venueId}/sync-policy",
          "permission": "settings:write",
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "venueId": {
                "type": "string",
                "minLength": 1
              },
              "preferredSyncMode": {
                "type": "string"
              },
              "rescueUplinkEnabled": {
                "type": "boolean"
              },
              "rescueActivationAfterSeconds": {
                "type": "number"
              },
              "unsyncedEventThreshold": {
                "type": "number"
              },
              "maxRescueSessionMinutes": {
                "type": "number"
              },
              "minPrimaryHealthySeconds": {
                "type": "number"
              },
              "clientMutationId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "venueId"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Update sync policy.",
            "additionalProperties": true
          },
          "readOnly": false,
          "destructive": false,
          "agentAccess": "confirm",
          "documentation": {
            "example_input": {
              "venueId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-commerce --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/venues/example/sync-policy",
              "body": {
                "venueId": "example"
              }
            },
            "effects": "May change state through PUT /api/venues/{venueId}/sync-policy. 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/venues/*/sync-policy",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "venues.staff_notifications.list",
          "title": "List staff notifications",
          "description": "List Commerce venue staff notifications.",
          "method": "GET",
          "path": "/api/venues/{venueId}/staff-notifications",
          "permission": "venues:read",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "venueId": {
                "type": "string",
                "minLength": 1
              },
              "staffMemberId": {
                "type": "string"
              },
              "status": {
                "type": "string"
              }
            },
            "required": [
              "venueId"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by List staff notifications.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "documentation": {
            "example_input": {
              "venueId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-commerce --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/venues/example/staff-notifications",
              "body": null
            },
            "effects": "Reads state through GET /api/venues/{venueId}/staff-notifications 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/venues/*/staff-notifications",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "venues.staff_notifications.update",
          "title": "Update staff notification",
          "description": "Update a Commerce staff notification.",
          "method": "PUT",
          "path": "/api/venues/{venueId}/staff-notifications/{notificationId}",
          "permission": "queues:write",
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "venueId": {
                "type": "string",
                "minLength": 1
              },
              "notificationId": {
                "type": "string",
                "minLength": 1
              },
              "status": {
                "type": "string",
                "enum": [
                  "pending",
                  "accepted",
                  "dismissed"
                ]
              },
              "acceptedAt": {
                "type": "number"
              },
              "clientMutationId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "venueId",
              "notificationId"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Update staff notification.",
            "additionalProperties": true
          },
          "readOnly": false,
          "destructive": false,
          "agentAccess": "confirm",
          "documentation": {
            "example_input": {
              "venueId": "example",
              "notificationId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-commerce --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/venues/example/staff-notifications/example",
              "body": {
                "venueId": "example",
                "notificationId": "example"
              }
            },
            "effects": "May change state through PUT /api/venues/{venueId}/staff-notifications/{notificationId}. 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/venues/*/staff-notifications/*",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "venues.edge_nodes.list",
          "title": "List edge nodes",
          "description": "List Commerce venue edge nodes.",
          "method": "GET",
          "path": "/api/venues/{venueId}/edge/nodes",
          "permission": "venues:read",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "venueId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "venueId"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by List edge nodes.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "documentation": {
            "example_input": {
              "venueId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-commerce --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/venues/example/edge/nodes",
              "body": null
            },
            "effects": "Reads state through GET /api/venues/{venueId}/edge/nodes 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/venues/*/edge/nodes",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "venues.edge_nodes.create",
          "title": "Create edge node",
          "description": "Create a Commerce venue edge node.",
          "method": "POST",
          "path": "/api/venues/{venueId}/edge/nodes",
          "permission": "settings:write",
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "venueId": {
                "type": "string",
                "minLength": 1
              },
              "nodeLabel": {
                "type": "string",
                "minLength": 1
              },
              "capabilities": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "localEndpoint": {
                "type": "string"
              },
              "notes": {
                "type": "string"
              },
              "connectivityPolicy": {
                "type": "string"
              },
              "metadata": {
                "type": "object",
                "properties": {},
                "additionalProperties": {}
              },
              "clientMutationId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "venueId",
              "nodeLabel"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Create edge node.",
            "additionalProperties": true
          },
          "readOnly": false,
          "destructive": false,
          "agentAccess": "confirm",
          "documentation": {
            "example_input": {
              "venueId": "example",
              "nodeLabel": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-commerce --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/venues/example/edge/nodes",
              "body": {
                "venueId": "example",
                "nodeLabel": "example"
              }
            },
            "effects": "May change state through POST /api/venues/{venueId}/edge/nodes. 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/venues/*/edge/nodes",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "venues.imports.list",
          "title": "List imports",
          "description": "List Commerce venue imports.",
          "method": "GET",
          "path": "/api/venues/{venueId}/imports",
          "permission": "imports:read",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "venueId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "venueId"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by List imports.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "documentation": {
            "example_input": {
              "venueId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-commerce --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/venues/example/imports",
              "body": null
            },
            "effects": "Reads state through GET /api/venues/{venueId}/imports 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/venues/*/imports",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "venues.imports.create",
          "title": "Create import",
          "description": "Create a Commerce venue import.",
          "method": "POST",
          "path": "/api/venues/{venueId}/imports",
          "permission": "imports:write",
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "venueId": {
                "type": "string",
                "minLength": 1
              },
              "sourceType": {
                "type": "string"
              },
              "sourceName": {
                "type": "string"
              },
              "notes": {
                "type": "string"
              },
              "requestedVerticalPack": {
                "type": "string"
              },
              "draftSummary": {
                "type": "string"
              },
              "sourceFile": {
                "type": "object",
                "properties": {
                  "dataUrl": {
                    "type": "string",
                    "minLength": 1
                  },
                  "filename": {
                    "type": "string"
                  },
                  "name": {
                    "type": "string"
                  }
                },
                "required": [
                  "dataUrl"
                ],
                "additionalProperties": {}
              },
              "clientMutationId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "venueId"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Create import.",
            "additionalProperties": true
          },
          "readOnly": false,
          "destructive": false,
          "agentAccess": "confirm",
          "documentation": {
            "example_input": {
              "venueId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-commerce --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/venues/example/imports",
              "body": {
                "venueId": "example"
              }
            },
            "effects": "May change state through POST /api/venues/{venueId}/imports. 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/venues/*/imports",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "venues.imports.approve",
          "title": "Approve import",
          "description": "Approve a Commerce venue import.",
          "method": "PUT",
          "path": "/api/venues/{venueId}/imports/{importId}/approve",
          "permission": "imports:write",
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "venueId": {
                "type": "string",
                "minLength": 1
              },
              "importId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "venueId",
              "importId"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Approve import.",
            "additionalProperties": true
          },
          "readOnly": false,
          "destructive": false,
          "agentAccess": "confirm",
          "documentation": {
            "example_input": {
              "venueId": "example",
              "importId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-commerce --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/venues/example/imports/example/approve",
              "body": {
                "venueId": "example",
                "importId": "example"
              }
            },
            "effects": "May change state through PUT /api/venues/{venueId}/imports/{importId}/approve. 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/venues/*/imports/*/approve",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "venues.imports.reject",
          "title": "Reject import",
          "description": "Reject a Commerce venue import.",
          "method": "PUT",
          "path": "/api/venues/{venueId}/imports/{importId}/reject",
          "permission": "imports:write",
          "requiresConfirmation": true,
          "destructive": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "venueId": {
                "type": "string",
                "minLength": 1
              },
              "importId": {
                "type": "string",
                "minLength": 1
              },
              "reason": {
                "type": "string"
              },
              "clientMutationId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "venueId",
              "importId"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Reject import.",
            "additionalProperties": true
          },
          "readOnly": false,
          "agentAccess": "confirm",
          "documentation": {
            "example_input": {
              "venueId": "example",
              "importId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-commerce --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/venues/example/imports/example/reject",
              "body": {
                "venueId": "example",
                "importId": "example"
              }
            },
            "effects": "May change state through PUT /api/venues/{venueId}/imports/{importId}/reject. 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/venues/*/imports/*/reject",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "venues.imports.get",
          "title": "Get import",
          "description": "Get a Commerce venue import.",
          "method": "GET",
          "path": "/api/venues/{venueId}/imports/{importId}",
          "permission": "imports:read",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "venueId": {
                "type": "string",
                "minLength": 1
              },
              "importId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "venueId",
              "importId"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Get import.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "documentation": {
            "example_input": {
              "venueId": "example",
              "importId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-commerce --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/venues/example/imports/example",
              "body": null
            },
            "effects": "Reads state through GET /api/venues/{venueId}/imports/{importId} 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/venues/*/imports/*",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "venues.imports.asset.get",
          "title": "Get import asset",
          "description": "Get a Commerce venue import asset.",
          "method": "GET",
          "path": "/api/venues/{venueId}/imports/{importId}/asset",
          "permission": "imports:read",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "venueId": {
                "type": "string",
                "minLength": 1
              },
              "importId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "venueId",
              "importId"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Get import asset.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "documentation": {
            "example_input": {
              "venueId": "example",
              "importId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-commerce --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/venues/example/imports/example/asset",
              "body": null
            },
            "effects": "Reads state through GET /api/venues/{venueId}/imports/{importId}/asset 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/venues/*/imports/*/asset",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "venues.ops_voice.resolve",
          "title": "Resolve ops voice",
          "description": "Resolve Commerce ops voice input.",
          "method": "POST",
          "path": "/api/venues/{venueId}/ops/voice/resolve",
          "permission": "settings:write",
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "venueId": {
                "type": "string",
                "minLength": 1
              },
              "transcript": {
                "type": "string"
              },
              "utterance": {
                "type": "string"
              },
              "audioDataUrl": {
                "type": "string"
              },
              "mimeType": {
                "type": "string"
              },
              "durationMs": {
                "type": "number"
              },
              "clientMutationId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "venueId"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Resolve ops voice.",
            "additionalProperties": true
          },
          "readOnly": false,
          "destructive": false,
          "agentAccess": "confirm",
          "documentation": {
            "example_input": {
              "venueId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-commerce --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/venues/example/ops/voice/resolve",
              "body": {
                "venueId": "example"
              }
            },
            "effects": "May change state through POST /api/venues/{venueId}/ops/voice/resolve. 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/venues/*/ops/voice/resolve",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "venues.ops_tickets.list",
          "title": "List ops tickets",
          "description": "List Commerce venue ops tickets.",
          "method": "GET",
          "path": "/api/venues/{venueId}/ops/tickets",
          "permission": "queues:read",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "venueId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "venueId"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by List ops tickets.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "documentation": {
            "example_input": {
              "venueId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-commerce --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/venues/example/ops/tickets",
              "body": null
            },
            "effects": "Reads state through GET /api/venues/{venueId}/ops/tickets 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/venues/*/ops/tickets",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "venues.ops_live_state.get",
          "title": "Get ops live state",
          "description": "Get Commerce venue ops live state.",
          "method": "GET",
          "path": "/api/venues/{venueId}/ops/live-state",
          "permission": "queues:read",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "venueId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "venueId"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Get ops live state.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "documentation": {
            "example_input": {
              "venueId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-commerce --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/venues/example/ops/live-state",
              "body": null
            },
            "effects": "Reads state through GET /api/venues/{venueId}/ops/live-state 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/venues/*/ops/live-state",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "venues.ops_live_stream_ticket.create",
          "title": "Create live stream ticket",
          "description": "Create a Commerce venue live stream ticket.",
          "method": "POST",
          "path": "/api/venues/{venueId}/ops/live-stream-ticket",
          "permission": "queues:write",
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "venueId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "venueId"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Create live stream ticket.",
            "additionalProperties": true
          },
          "readOnly": false,
          "destructive": false,
          "agentAccess": "confirm",
          "documentation": {
            "example_input": {
              "venueId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-commerce --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/venues/example/ops/live-stream-ticket",
              "body": {
                "venueId": "example"
              }
            },
            "effects": "May change state through POST /api/venues/{venueId}/ops/live-stream-ticket. 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/venues/*/ops/live-stream-ticket",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "venues.ops_tickets.update",
          "title": "Update ops ticket",
          "description": "Update a Commerce venue ops ticket.",
          "method": "PUT",
          "path": "/api/venues/{venueId}/ops/tickets/{ticketId}",
          "permission": "queues:write",
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "venueId": {
                "type": "string",
                "minLength": 1
              },
              "ticketId": {
                "type": "string",
                "minLength": 1
              },
              "status": {
                "type": "string",
                "enum": [
                  "queued",
                  "active",
                  "completed",
                  "cancelled"
                ]
              },
              "operatorNote": {
                "type": "string"
              },
              "assignedStaffId": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "assignedSectionId": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "expectedUpdatedAt": {
                "type": "number"
              },
              "expectedStatus": {
                "type": "string"
              },
              "clientMutationId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "venueId",
              "ticketId",
              "status"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Update ops ticket.",
            "additionalProperties": true
          },
          "readOnly": false,
          "destructive": false,
          "agentAccess": "confirm",
          "documentation": {
            "example_input": {
              "venueId": "example",
              "ticketId": "example",
              "status": "queued"
            },
            "cli_example": [
              "topolo actions --service topolo-commerce --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/venues/example/ops/tickets/example",
              "body": {
                "venueId": "example",
                "ticketId": "example",
                "status": "queued"
              }
            },
            "effects": "May change state through PUT /api/venues/{venueId}/ops/tickets/{ticketId}. 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/venues/*/ops/tickets/*",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "venues.team.list",
          "title": "List team",
          "description": "List Commerce venue team members.",
          "method": "GET",
          "path": "/api/venues/{venueId}/team",
          "permission": "venues:read",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "venueId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "venueId"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by List team.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "documentation": {
            "example_input": {
              "venueId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-commerce --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/venues/example/team",
              "body": null
            },
            "effects": "Reads state through GET /api/venues/{venueId}/team 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/venues/*/team",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "venues.staff_identity_methods.list",
          "title": "List staff identity methods",
          "description": "List Commerce staff identity methods.",
          "method": "GET",
          "path": "/api/venues/{venueId}/staff-identity-methods",
          "permission": "venues:read",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "venueId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "venueId"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by List staff identity methods.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "documentation": {
            "example_input": {
              "venueId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-commerce --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/venues/example/staff-identity-methods",
              "body": null
            },
            "effects": "Reads state through GET /api/venues/{venueId}/staff-identity-methods 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/venues/*/staff-identity-methods",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "venues.team_sections.create",
          "title": "Create team section",
          "description": "Create a Commerce venue team section.",
          "method": "POST",
          "path": "/api/venues/{venueId}/team/sections",
          "permission": "venues:write",
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "venueId": {
                "type": "string",
                "minLength": 1
              },
              "id": {
                "type": "string"
              },
              "name": {
                "type": "string",
                "minLength": 1
              },
              "zoneLabel": {
                "type": "string"
              },
              "status": {
                "type": "string"
              },
              "summary": {
                "type": "string"
              },
              "clientMutationId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "venueId",
              "name"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Create team section.",
            "additionalProperties": true
          },
          "readOnly": false,
          "destructive": false,
          "agentAccess": "confirm",
          "documentation": {
            "example_input": {
              "venueId": "example",
              "name": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-commerce --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/venues/example/team/sections",
              "body": {
                "venueId": "example",
                "name": "example"
              }
            },
            "effects": "May change state through POST /api/venues/{venueId}/team/sections. 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/venues/*/team/sections",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "venues.team_members.create",
          "title": "Create team member",
          "description": "Create a Commerce venue team member.",
          "method": "POST",
          "path": "/api/venues/{venueId}/team/members",
          "permission": "venues:write",
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "venueId": {
                "type": "string",
                "minLength": 1
              },
              "id": {
                "type": "string"
              },
              "userId": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "displayName": {
                "type": "string",
                "minLength": 1
              },
              "roleKey": {
                "type": "string",
                "minLength": 1
              },
              "sectionId": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "status": {
                "type": "string"
              },
              "deviceType": {
                "type": "string"
              },
              "notificationLabel": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "clientMutationId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "venueId",
              "displayName",
              "roleKey"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Create team member.",
            "additionalProperties": true
          },
          "readOnly": false,
          "destructive": false,
          "agentAccess": "confirm",
          "documentation": {
            "example_input": {
              "venueId": "example",
              "displayName": "example",
              "roleKey": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-commerce --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/venues/example/team/members",
              "body": {
                "venueId": "example",
                "displayName": "example",
                "roleKey": "example"
              }
            },
            "effects": "May change state through POST /api/venues/{venueId}/team/members. 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/venues/*/team/members",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "venues.team_members.update",
          "title": "Update team member",
          "description": "Update a Commerce venue team member.",
          "method": "PUT",
          "path": "/api/venues/{venueId}/team/members/{memberId}",
          "permission": "venues:write",
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "venueId": {
                "type": "string",
                "minLength": 1
              },
              "memberId": {
                "type": "string",
                "minLength": 1
              },
              "displayName": {
                "type": "string"
              },
              "roleKey": {
                "type": "string"
              },
              "sectionId": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "status": {
                "type": "string"
              },
              "deviceType": {
                "type": "string"
              },
              "notificationLabel": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "clientMutationId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "venueId",
              "memberId"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Update team member.",
            "additionalProperties": true
          },
          "readOnly": false,
          "destructive": false,
          "agentAccess": "confirm",
          "documentation": {
            "example_input": {
              "venueId": "example",
              "memberId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-commerce --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/venues/example/team/members/example",
              "body": {
                "venueId": "example",
                "memberId": "example"
              }
            },
            "effects": "May change state through PUT /api/venues/{venueId}/team/members/{memberId}. 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/venues/*/team/members/*",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "venues.team_members.identity_methods.create",
          "title": "Create team member identity method",
          "description": "Create a Commerce team member identity method.",
          "method": "POST",
          "path": "/api/venues/{venueId}/team/members/{memberId}/identity-methods",
          "permission": "venues:write",
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "venueId": {
                "type": "string",
                "minLength": 1
              },
              "memberId": {
                "type": "string",
                "minLength": 1
              },
              "id": {
                "type": "string"
              },
              "methodType": {
                "type": "string",
                "minLength": 1
              },
              "credential": {
                "type": "string"
              },
              "credentialHash": {
                "type": "string"
              },
              "credentialSalt": {
                "type": "string"
              },
              "credentialAlgorithm": {
                "type": "string"
              },
              "label": {
                "type": "string"
              },
              "status": {
                "type": "string"
              },
              "mustChangeOnFirstUse": {
                "type": "boolean"
              },
              "mustChangeOnNextUse": {
                "type": "boolean"
              },
              "lastUsedAt": {
                "type": "number"
              },
              "clientMutationId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "venueId",
              "memberId",
              "methodType"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Create team member identity method.",
            "additionalProperties": true
          },
          "readOnly": false,
          "destructive": false,
          "agentAccess": "confirm",
          "documentation": {
            "example_input": {
              "venueId": "example",
              "memberId": "example",
              "methodType": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-commerce --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/venues/example/team/members/example/identity-methods",
              "body": {
                "venueId": "example",
                "memberId": "example",
                "methodType": "example"
              }
            },
            "effects": "May change state through POST /api/venues/{venueId}/team/members/{memberId}/identity-methods. 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/venues/*/team/members/*/identity-methods",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "venues.security_policy.get",
          "title": "Get security policy",
          "description": "Get Commerce venue security policy.",
          "method": "GET",
          "path": "/api/venues/{venueId}/security-policy",
          "permission": "settings:read",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "venueId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "venueId"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Get security policy.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "documentation": {
            "example_input": {
              "venueId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-commerce --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/venues/example/security-policy",
              "body": null
            },
            "effects": "Reads state through GET /api/venues/{venueId}/security-policy 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/venues/*/security-policy",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "venues.security_policy.update",
          "title": "Update security policy",
          "description": "Update Commerce venue security policy.",
          "method": "PATCH",
          "path": "/api/venues/{venueId}/security-policy",
          "permission": "settings:write",
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "venueId": {
                "type": "string",
                "minLength": 1
              },
              "acceptedIdentityMethods": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "pinLength": {
                "type": "number"
              },
              "idleTimeoutSecondsByStationMode": {
                "type": "object",
                "properties": {},
                "additionalProperties": {}
              },
              "lockoutThresholdAttempts": {
                "type": "number"
              },
              "lockoutWindowSeconds": {
                "type": "number"
              },
              "lockoutDurationSeconds": {
                "type": "number"
              },
              "discountStepUpThresholdCents": {
                "type": "number"
              },
              "clientMutationId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "venueId"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Update security policy.",
            "additionalProperties": true
          },
          "readOnly": false,
          "destructive": false,
          "agentAccess": "confirm",
          "documentation": {
            "example_input": {
              "venueId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-commerce --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/venues/example/security-policy",
              "body": {
                "venueId": "example"
              }
            },
            "effects": "May change state through PATCH /api/venues/{venueId}/security-policy. 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/venues/*/security-policy",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "venues.operator_access_snapshot.get",
          "title": "Get operator access snapshot",
          "description": "Get Commerce operator access snapshot.",
          "method": "GET",
          "path": "/api/venues/{venueId}/operator-access-snapshot",
          "permission": "settings:read",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "venueId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "venueId"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Get operator access snapshot.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "documentation": {
            "example_input": {
              "venueId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-commerce --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/venues/example/operator-access-snapshot",
              "body": null
            },
            "effects": "Reads state through GET /api/venues/{venueId}/operator-access-snapshot 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/venues/*/operator-access-snapshot",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "venues.action_permissions.list",
          "title": "List action permissions",
          "description": "List Commerce venue action permissions.",
          "method": "GET",
          "path": "/api/venues/{venueId}/action-permissions",
          "permission": "settings:read",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "venueId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "venueId"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by List action permissions.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "documentation": {
            "example_input": {
              "venueId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-commerce --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/venues/example/action-permissions",
              "body": null
            },
            "effects": "Reads state through GET /api/venues/{venueId}/action-permissions 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/venues/*/action-permissions",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "venues.action_permissions.update",
          "title": "Update action permission",
          "description": "Update Commerce venue action permission.",
          "method": "PUT",
          "path": "/api/venues/{venueId}/action-permissions/{actionKey}",
          "permission": "settings:write",
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "venueId": {
                "type": "string",
                "minLength": 1
              },
              "actionKey": {
                "type": "string",
                "minLength": 1
              },
              "requiredRoleKeys": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "stepUpRequired": {
                "type": "boolean"
              },
              "payload": {
                "type": "object",
                "properties": {},
                "additionalProperties": {}
              },
              "clientMutationId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "venueId",
              "actionKey"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Update action permission.",
            "additionalProperties": true
          },
          "readOnly": false,
          "destructive": false,
          "agentAccess": "confirm",
          "documentation": {
            "example_input": {
              "venueId": "example",
              "actionKey": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-commerce --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/venues/example/action-permissions/example",
              "body": {
                "venueId": "example",
                "actionKey": "example"
              }
            },
            "effects": "May change state through PUT /api/venues/{venueId}/action-permissions/{actionKey}. 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/venues/*/action-permissions/*",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "venues.tables.floor_plan.get",
          "title": "Get floor plan",
          "description": "Get Commerce venue table floor plan.",
          "method": "GET",
          "path": "/api/venues/{venueId}/tables/floor-plan",
          "permission": "venues:read",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "venueId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "venueId"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Get floor plan.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "documentation": {
            "example_input": {
              "venueId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-commerce --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/venues/example/tables/floor-plan",
              "body": null
            },
            "effects": "Reads state through GET /api/venues/{venueId}/tables/floor-plan 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/venues/*/tables/floor-plan",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "venues.tables.floor_plan.update",
          "title": "Update floor plan",
          "description": "Update Commerce venue table floor plan.",
          "method": "PUT",
          "path": "/api/venues/{venueId}/tables/floor-plan",
          "permission": "venues:write",
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "venueId": {
                "type": "string",
                "minLength": 1
              },
              "floorPlan": {
                "type": "object",
                "properties": {
                  "gridCols": {
                    "type": "number"
                  },
                  "gridRows": {
                    "type": "number"
                  },
                  "tables": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "label": {
                          "type": "string"
                        },
                        "x": {
                          "type": "number"
                        },
                        "y": {
                          "type": "number"
                        },
                        "width": {
                          "type": "number"
                        },
                        "height": {
                          "type": "number"
                        },
                        "shape": {
                          "type": "string"
                        },
                        "capacity": {
                          "type": "number"
                        },
                        "sectionLabel": {
                          "type": "string"
                        },
                        "zone": {
                          "type": "string"
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "version": {
                    "type": "number"
                  },
                  "updatedAt": {
                    "type": "string"
                  }
                },
                "additionalProperties": false
              },
              "gridCols": {
                "type": "number"
              },
              "gridRows": {
                "type": "number"
              },
              "tables": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "label": {
                      "type": "string"
                    },
                    "x": {
                      "type": "number"
                    },
                    "y": {
                      "type": "number"
                    },
                    "width": {
                      "type": "number"
                    },
                    "height": {
                      "type": "number"
                    },
                    "shape": {
                      "type": "string"
                    },
                    "capacity": {
                      "type": "number"
                    },
                    "sectionLabel": {
                      "type": "string"
                    },
                    "zone": {
                      "type": "string"
                    }
                  },
                  "additionalProperties": false
                }
              },
              "ifVersion": {
                "type": "number"
              },
              "version": {
                "type": "number"
              },
              "clientMutationId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "venueId"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Update floor plan.",
            "additionalProperties": true
          },
          "readOnly": false,
          "destructive": false,
          "agentAccess": "confirm",
          "documentation": {
            "example_input": {
              "venueId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-commerce --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/venues/example/tables/floor-plan",
              "body": {
                "venueId": "example"
              }
            },
            "effects": "May change state through PUT /api/venues/{venueId}/tables/floor-plan. 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/venues/*/tables/floor-plan",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "venues.tables.qr_summary.get",
          "title": "Get table QR summary",
          "description": "Get Commerce venue table QR summary.",
          "method": "GET",
          "path": "/api/venues/{venueId}/tables/qr-summary",
          "permission": "venues:read",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "venueId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "venueId"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Get table QR summary.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "documentation": {
            "example_input": {
              "venueId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-commerce --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/venues/example/tables/qr-summary",
              "body": null
            },
            "effects": "Reads state through GET /api/venues/{venueId}/tables/qr-summary 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/venues/*/tables/qr-summary",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "venues.tables.sync_qr",
          "title": "Sync table QR",
          "description": "Sync Commerce venue table QR codes.",
          "method": "POST",
          "path": "/api/venues/{venueId}/tables/sync-qr",
          "permission": "venues:write",
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "venueId": {
                "type": "string",
                "minLength": 1
              },
              "tables": {
                "minItems": 1,
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "minLength": 1
                    },
                    "number": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "number"
                            }
                          ]
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "zone": {
                      "type": "string"
                    },
                    "sectionLabel": {
                      "type": "string"
                    },
                    "label": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id"
                  ],
                  "additionalProperties": false
                }
              },
              "clientMutationId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "venueId",
              "tables"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Sync table QR.",
            "additionalProperties": true
          },
          "readOnly": false,
          "destructive": false,
          "agentAccess": "confirm",
          "documentation": {
            "example_input": {
              "venueId": "example",
              "tables": [
                {
                  "id": "00000000-0000-4000-8000-000000000000"
                }
              ]
            },
            "cli_example": [
              "topolo actions --service topolo-commerce --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/venues/example/tables/sync-qr",
              "body": {
                "venueId": "example",
                "tables": [
                  {
                    "id": "00000000-0000-4000-8000-000000000000"
                  }
                ]
              }
            },
            "effects": "May change state through POST /api/venues/{venueId}/tables/sync-qr. 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/venues/*/tables/sync-qr",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "assets.upload",
          "title": "Upload asset",
          "description": "Upload a Commerce admin asset.",
          "method": "PUT",
          "path": "/api/admin/upload-asset",
          "permission": "catalog:write",
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "venueId": {
                "type": "string",
                "minLength": 1
              },
              "contentBase64": {
                "type": "string",
                "minLength": 1,
                "maxLength": 14000000
              },
              "contentType": {
                "type": "string",
                "enum": [
                  "image/png",
                  "image/jpeg",
                  "image/webp",
                  "image/gif"
                ]
              },
              "fileName": {
                "type": "string",
                "minLength": 1
              },
              "assetKind": {
                "type": "string",
                "enum": [
                  "catalog-images",
                  "voice-reviews"
                ]
              }
            },
            "required": [
              "venueId",
              "contentBase64",
              "contentType",
              "fileName"
            ],
            "additionalProperties": false
          },
          "agentContract": {
            "upload": {
              "profile": "inline-base64",
              "contentField": "contentBase64",
              "contentTypeField": "contentType",
              "fileNameField": "fileName",
              "maxBytes": 10485760,
              "acceptedContentTypes": [
                "image/png",
                "image/jpeg",
                "image/webp",
                "image/gif"
              ]
            }
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Upload asset.",
            "additionalProperties": true
          },
          "readOnly": false,
          "destructive": false,
          "agentAccess": "confirm",
          "documentation": {
            "example_input": {
              "venueId": "example",
              "contentBase64": "example",
              "contentType": "image/png",
              "fileName": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-commerce --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/admin/upload-asset",
              "body": {
                "venueId": "example",
                "contentBase64": "example",
                "contentType": "image/png",
                "fileName": "example"
              }
            },
            "effects": "May change state through PUT /api/admin/upload-asset. 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/admin/upload-asset",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "catalog_images.generate",
          "title": "Generate catalog images",
          "description": "Generate Commerce catalog images.",
          "method": "POST",
          "path": "/api/admin/generate-catalog-images",
          "permission": "catalog:write",
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "items": {
                "minItems": 1,
                "maxItems": 50,
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "minLength": 1
                    },
                    "venueId": {
                      "type": "string",
                      "minLength": 1
                    },
                    "prompt": {
                      "type": "string",
                      "minLength": 1
                    },
                    "provider": {
                      "type": "string"
                    },
                    "model": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id",
                    "venueId",
                    "prompt"
                  ],
                  "additionalProperties": false
                }
              },
              "provider": {
                "type": "string"
              },
              "model": {
                "type": "string"
              }
            },
            "required": [
              "items"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Generate catalog images.",
            "additionalProperties": true
          },
          "readOnly": false,
          "destructive": false,
          "agentAccess": "confirm",
          "documentation": {
            "example_input": {
              "items": [
                {
                  "id": "00000000-0000-4000-8000-000000000000",
                  "venueId": "example",
                  "prompt": "example"
                }
              ]
            },
            "cli_example": [
              "topolo actions --service topolo-commerce --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/admin/generate-catalog-images",
              "body": {
                "items": [
                  {
                    "id": "00000000-0000-4000-8000-000000000000",
                    "venueId": "example",
                    "prompt": "example"
                  }
                ]
              }
            },
            "effects": "May change state through POST /api/admin/generate-catalog-images. 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/admin/generate-catalog-images",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        }
      ],
      "action_coverage": {
        "status": "ok",
        "served_routes": 111,
        "matched_actions": 66,
        "declared_unserved_actions": [],
        "coverage_excluded_actions": [],
        "uncatalogued_routes": [],
        "ignored_routes": 45,
        "configured_exclusions": 43,
        "configuration_findings": [],
        "notes": [
          "no routes extracted from ops",
          "no routes extracted from station",
          "1 manually-declared route(s)"
        ]
      },
      "runtime_contract_audit": {
        "status": "verified",
        "actions": 66,
        "contracts": 66,
        "contract_module": "topolo.action-contracts.mjs",
        "validator_sources": [
          "apps/api/src/index.js"
        ],
        "authorization_sources": [
          "apps/api/src/index.js"
        ],
        "findings": []
      }
    }
  ],
  "mobile_contracts": [
    {
      "source_path": "apps/TopoloCommerce/topolo.mobile-experience.json",
      "contract": {
        "version": "2026-06-29",
        "status": "approved",
        "mode": "native_capability",
        "appId": "app_topolo_commerce",
        "localizationNamespace": "commerce",
        "permissions": [
          "venues:read",
          "venues:write",
          "settings:write",
          "queues:read",
          "service-requests:read"
        ],
        "offlinePolicy": "read_through_cache",
        "fallbackPath": "/venues",
        "auth": {
          "audience": "topolo-commerce",
          "scopes": [
            "venues:read",
            "venues:write",
            "settings:write",
            "queues:read",
            "service-requests:read"
          ]
        },
        "routes": [
          {
            "path": "/venues",
            "apiPath": "/api/venues",
            "title": "Venues",
            "titleKey": "commerce.mobile.routes.venues.title",
            "template": "record.list",
            "dataSource": "commerce.venues.list",
            "detailRoute": "/venues/:id",
            "actions": [
              {
                "id": "commerce.venues.create",
                "title": "Create venue",
                "type": "record.create",
                "permission": "venues:write",
                "method": "POST",
                "path": "/api/venues",
                "fields": [
                  {
                    "key": "name",
                    "label": "Name",
                    "type": "text",
                    "required": true
                  },
                  {
                    "key": "slug",
                    "label": "Slug",
                    "type": "text"
                  },
                  {
                    "key": "verticalPack",
                    "label": "Vertical pack",
                    "type": "text"
                  },
                  {
                    "key": "serviceModel",
                    "label": "Service model",
                    "type": "text"
                  },
                  {
                    "key": "paymentMode",
                    "label": "Payment mode",
                    "type": "text"
                  },
                  {
                    "key": "summary",
                    "label": "Summary",
                    "type": "textarea"
                  },
                  {
                    "key": "presetKey",
                    "label": "Preset key",
                    "type": "text"
                  }
                ],
                "titleKey": "commerce.mobile.actions.venues.create.title"
              },
              {
                "id": "commerce.venues.updateSettings",
                "title": "Update venue settings",
                "type": "record.update",
                "permission": "settings:write",
                "method": "PUT",
                "path": "/api/venues/:id",
                "fields": [
                  {
                    "key": "name",
                    "label": "Name",
                    "type": "text",
                    "required": true
                  },
                  {
                    "key": "slug",
                    "label": "Slug",
                    "type": "text"
                  },
                  {
                    "key": "verticalPack",
                    "label": "Vertical pack",
                    "type": "text"
                  },
                  {
                    "key": "serviceModel",
                    "label": "Service model",
                    "type": "text"
                  },
                  {
                    "key": "paymentMode",
                    "label": "Payment mode",
                    "type": "text"
                  },
                  {
                    "key": "summary",
                    "label": "Summary",
                    "type": "textarea"
                  },
                  {
                    "key": "presetKey",
                    "label": "Preset key",
                    "type": "text"
                  }
                ],
                "titleKey": "commerce.mobile.actions.venues.update.settings.title"
              }
            ]
          },
          {
            "path": "/venues/:id",
            "apiPath": "/api/venues/:id",
            "title": "Venue",
            "titleKey": "commerce.mobile.routes.venues.title",
            "template": "record.detail",
            "dataSource": "commerce.venues.detail"
          },
          {
            "path": "/orders",
            "apiPath": "/api/orders",
            "title": "Orders",
            "titleKey": "commerce.mobile.routes.orders.title",
            "template": "record.list",
            "dataSource": "commerce.orders.list"
          },
          {
            "path": "/service-requests",
            "apiPath": "/api/service-requests",
            "title": "Service requests",
            "titleKey": "commerce.mobile.routes.serviceRequests.title",
            "template": "record.list",
            "dataSource": "commerce.serviceRequests.list"
          }
        ]
      }
    }
  ],
  "package_manifests": [],
  "deployment_configs": [],
  "source_signals": {
    "api_routes": [
      {
        "method": "LITERAL",
        "path": "/snapshot",
        "source_path": "apps/TopoloCommerce/apps/api/scripts/queue-stream-soak.mjs"
      },
      {
        "method": "LITERAL",
        "path": "/snapshot",
        "source_path": "apps/TopoloCommerce/apps/api/scripts/queue-stress.mjs"
      },
      {
        "method": "LITERAL",
        "path": "/bootstrap",
        "source_path": "apps/TopoloCommerce/apps/api/scripts/queue-stress.mjs"
      },
      {
        "method": "LITERAL",
        "path": "/stream",
        "source_path": "apps/TopoloCommerce/apps/api/scripts/queue-stress.mjs"
      },
      {
        "method": "GET",
        "path": "/api/assets/*",
        "source_path": "apps/TopoloCommerce/apps/api/src/assetRoutes.js"
      },
      {
        "method": "PUT",
        "path": "/api/admin/upload-asset",
        "source_path": "apps/TopoloCommerce/apps/api/src/assetRoutes.js"
      },
      {
        "method": "POST",
        "path": "/api/admin/generate-catalog-images",
        "source_path": "apps/TopoloCommerce/apps/api/src/assetRoutes.js"
      },
      {
        "method": "POST",
        "path": "/api/guest/bill",
        "source_path": "apps/TopoloCommerce/apps/api/src/guestBillRoutes.js"
      },
      {
        "method": "POST",
        "path": "/api/guest/bill/payments",
        "source_path": "apps/TopoloCommerce/apps/api/src/guestBillRoutes.js"
      },
      {
        "method": "POST",
        "path": "/api/guest/bill/payment-link",
        "source_path": "apps/TopoloCommerce/apps/api/src/guestBillRoutes.js"
      },
      {
        "method": "GET",
        "path": "/api/guest/bill/payment-link/:linkId",
        "source_path": "apps/TopoloCommerce/apps/api/src/guestBillRoutes.js"
      },
      {
        "method": "GET",
        "path": "/api/guest/tab",
        "source_path": "apps/TopoloCommerce/apps/api/src/guestTableTabRoutes.js"
      },
      {
        "method": "GET",
        "path": "/api/guest/table-tabs",
        "source_path": "apps/TopoloCommerce/apps/api/src/guestTableTabRoutes.js"
      },
      {
        "method": "POST",
        "path": "/api/guest/table-tabs",
        "source_path": "apps/TopoloCommerce/apps/api/src/guestTableTabRoutes.js"
      },
      {
        "method": "POST",
        "path": "/api/guest/table-tabs/join-requests",
        "source_path": "apps/TopoloCommerce/apps/api/src/guestTableTabRoutes.js"
      },
      {
        "method": "GET",
        "path": "/api/guest/table-tabs/join-requests/:reqId",
        "source_path": "apps/TopoloCommerce/apps/api/src/guestTableTabRoutes.js"
      },
      {
        "method": "GET",
        "path": "/api/guest/table-tabs/:tabId",
        "source_path": "apps/TopoloCommerce/apps/api/src/guestTableTabRoutes.js"
      },
      {
        "method": "POST",
        "path": "/api/guest/table-tabs/:tabId/join-requests/:reqId/respond",
        "source_path": "apps/TopoloCommerce/apps/api/src/guestTableTabRoutes.js"
      },
      {
        "method": "POST",
        "path": "/api/guest/table-tabs/:tabId/close",
        "source_path": "apps/TopoloCommerce/apps/api/src/guestTableTabRoutes.js"
      },
      {
        "method": "POST",
        "path": "/api/guest/sessions",
        "source_path": "apps/TopoloCommerce/apps/api/src/guestTableTabRoutes.js"
      },
      {
        "method": "ALL",
        "path": "/health",
        "source_path": "apps/TopoloCommerce/apps/api/src/index.js"
      },
      {
        "method": "GET",
        "path": "/api/widget",
        "source_path": "apps/TopoloCommerce/apps/api/src/index.js"
      },
      {
        "method": "GET",
        "path": "/api/guest/venues",
        "source_path": "apps/TopoloCommerce/apps/api/src/index.js"
      },
      {
        "method": "GET",
        "path": "/api/guest/venues/:slug",
        "source_path": "apps/TopoloCommerce/apps/api/src/index.js"
      },
      {
        "method": "POST",
        "path": "/api/orders",
        "source_path": "apps/TopoloCommerce/apps/api/src/index.js"
      },
      {
        "method": "PUT",
        "path": "/api/draft-orders",
        "source_path": "apps/TopoloCommerce/apps/api/src/index.js"
      },
      {
        "method": "POST",
        "path": "/api/service-requests",
        "source_path": "apps/TopoloCommerce/apps/api/src/index.js"
      },
      {
        "method": "PATCH",
        "path": "/api/service-requests/:id",
        "source_path": "apps/TopoloCommerce/apps/api/src/index.js"
      },
      {
        "method": "POST",
        "path": "/api/bookings",
        "source_path": "apps/TopoloCommerce/apps/api/src/index.js"
      },
      {
        "method": "POST",
        "path": "/api/payment-sessions",
        "source_path": "apps/TopoloCommerce/apps/api/src/index.js"
      },
      {
        "method": "GET",
        "path": "/api/orders",
        "source_path": "apps/TopoloCommerce/apps/api/src/operatorNativeRoutes.js"
      },
      {
        "method": "GET",
        "path": "/api/service-requests",
        "source_path": "apps/TopoloCommerce/apps/api/src/operatorNativeRoutes.js"
      },
      {
        "method": "GET",
        "path": "/security-policy",
        "source_path": "apps/TopoloCommerce/apps/api/src/routes/accessControl.js"
      },
      {
        "method": "GET",
        "path": "/operator-access-snapshot",
        "source_path": "apps/TopoloCommerce/apps/api/src/routes/accessControl.js"
      },
      {
        "method": "PATCH",
        "path": "/security-policy",
        "source_path": "apps/TopoloCommerce/apps/api/src/routes/accessControl.js"
      },
      {
        "method": "GET",
        "path": "/action-permissions",
        "source_path": "apps/TopoloCommerce/apps/api/src/routes/accessControl.js"
      },
      {
        "method": "PUT",
        "path": "/action-permissions/:actionKey",
        "source_path": "apps/TopoloCommerce/apps/api/src/routes/accessControl.js"
      },
      {
        "method": "POST",
        "path": "/devices/:deviceId/operator-sessions",
        "source_path": "apps/TopoloCommerce/apps/api/src/routes/accessControl.js"
      },
      {
        "method": "DELETE",
        "path": "/devices/:deviceId/operator-sessions/:sessionId",
        "source_path": "apps/TopoloCommerce/apps/api/src/routes/accessControl.js"
      },
      {
        "method": "POST",
        "path": "/operator-sessions/:sessionId/step-up",
        "source_path": "apps/TopoloCommerce/apps/api/src/routes/accessControl.js"
      },
      {
        "method": "POST",
        "path": "/operator-sessions/:sessionId/credential",
        "source_path": "apps/TopoloCommerce/apps/api/src/routes/accessControl.js"
      },
      {
        "method": "POST",
        "path": "/devices/link",
        "source_path": "apps/TopoloCommerce/apps/api/src/routes/deviceMdm.js"
      },
      {
        "method": "PUT",
        "path": "/devices/:deviceId/profile",
        "source_path": "apps/TopoloCommerce/apps/api/src/routes/deviceMdm.js"
      },
      {
        "method": "POST",
        "path": "/devices/:deviceId/command",
        "source_path": "apps/TopoloCommerce/apps/api/src/routes/deviceMdm.js"
      },
      {
        "method": "GET",
        "path": "/devices",
        "source_path": "apps/TopoloCommerce/apps/api/src/routes/deviceMdm.js"
      },
      {
        "method": "GET",
        "path": "/imports",
        "source_path": "apps/TopoloCommerce/apps/api/src/routes/imports.js"
      },
      {
        "method": "POST",
        "path": "/imports",
        "source_path": "apps/TopoloCommerce/apps/api/src/routes/imports.js"
      },
      {
        "method": "PUT",
        "path": "/imports/:importId/approve",
        "source_path": "apps/TopoloCommerce/apps/api/src/routes/imports.js"
      },
      {
        "method": "PUT",
        "path": "/imports/:importId/reject",
        "source_path": "apps/TopoloCommerce/apps/api/src/routes/imports.js"
      },
      {
        "method": "GET",
        "path": "/imports/:importId",
        "source_path": "apps/TopoloCommerce/apps/api/src/routes/imports.js"
      },
      {
        "method": "GET",
        "path": "/imports/:importId/asset",
        "source_path": "apps/TopoloCommerce/apps/api/src/routes/imports.js"
      },
      {
        "method": "GET",
        "path": "/api/org/context",
        "source_path": "apps/TopoloCommerce/apps/api/src/routes/organization.js"
      },
      {
        "method": "GET",
        "path": "/api/org/module-settings",
        "source_path": "apps/TopoloCommerce/apps/api/src/routes/organization.js"
      },
      {
        "method": "PUT",
        "path": "/api/org/module-settings",
        "source_path": "apps/TopoloCommerce/apps/api/src/routes/organization.js"
      },
      {
        "method": "POST",
        "path": "/api/org/module-settings/resolve",
        "source_path": "apps/TopoloCommerce/apps/api/src/routes/organization.js"
      },
      {
        "method": "PUT",
        "path": "/api/org/hub-tiles",
        "source_path": "apps/TopoloCommerce/apps/api/src/routes/organization.js"
      },
      {
        "method": "GET",
        "path": "/api/venues",
        "source_path": "apps/TopoloCommerce/apps/api/src/routes/organization.js"
      },
      {
        "method": "POST",
        "path": "/api/venues",
        "source_path": "apps/TopoloCommerce/apps/api/src/routes/organization.js"
      },
      {
        "method": "GET",
        "path": "/api/organizations/:organizationId/data",
        "source_path": "apps/TopoloCommerce/apps/api/src/routes/organizationData.js"
      },
      {
        "method": "DELETE",
        "path": "/api/organizations/:organizationId/data",
        "source_path": "apps/TopoloCommerce/apps/api/src/routes/organizationData.js"
      },
      {
        "method": "GET",
        "path": "/ops/tickets",
        "source_path": "apps/TopoloCommerce/apps/api/src/routes/queue.js"
      },
      {
        "method": "GET",
        "path": "/ops/live-state",
        "source_path": "apps/TopoloCommerce/apps/api/src/routes/queue.js"
      },
      {
        "method": "POST",
        "path": "/ops/live-stream-ticket",
        "source_path": "apps/TopoloCommerce/apps/api/src/routes/queue.js"
      },
      {
        "method": "GET",
        "path": "/ops/live-stream",
        "source_path": "apps/TopoloCommerce/apps/api/src/routes/queue.js"
      },
      {
        "method": "PUT",
        "path": "/ops/tickets/:ticketId",
        "source_path": "apps/TopoloCommerce/apps/api/src/routes/queue.js"
      },
      {
        "method": "GET",
        "path": "/tables/floor-plan",
        "source_path": "apps/TopoloCommerce/apps/api/src/routes/tables.js"
      },
      {
        "method": "PUT",
        "path": "/tables/floor-plan",
        "source_path": "apps/TopoloCommerce/apps/api/src/routes/tables.js"
      },
      {
        "method": "GET",
        "path": "/tables/qr-summary",
        "source_path": "apps/TopoloCommerce/apps/api/src/routes/tables.js"
      },
      {
        "method": "POST",
        "path": "/tables/sync-qr",
        "source_path": "apps/TopoloCommerce/apps/api/src/routes/tables.js"
      },
      {
        "method": "GET",
        "path": "/team",
        "source_path": "apps/TopoloCommerce/apps/api/src/routes/team.js"
      },
      {
        "method": "GET",
        "path": "/staff-identity-methods",
        "source_path": "apps/TopoloCommerce/apps/api/src/routes/team.js"
      },
      {
        "method": "POST",
        "path": "/team/sections",
        "source_path": "apps/TopoloCommerce/apps/api/src/routes/team.js"
      },
      {
        "method": "POST",
        "path": "/team/members",
        "source_path": "apps/TopoloCommerce/apps/api/src/routes/team.js"
      },
      {
        "method": "POST",
        "path": "/team/members/:memberId/identity-methods",
        "source_path": "apps/TopoloCommerce/apps/api/src/routes/team.js"
      },
      {
        "method": "PUT",
        "path": "/team/members/:memberId",
        "source_path": "apps/TopoloCommerce/apps/api/src/routes/team.js"
      },
      {
        "method": "GET",
        "path": "/resilience/state",
        "source_path": "apps/TopoloCommerce/apps/api/src/routes/venueOperations.js"
      },
      {
        "method": "GET",
        "path": "/payment-reconciliations",
        "source_path": "apps/TopoloCommerce/apps/api/src/routes/venueOperations.js"
      },
      {
        "method": "POST",
        "path": "/payment-reconciliations",
        "source_path": "apps/TopoloCommerce/apps/api/src/routes/venueOperations.js"
      },
      {
        "method": "GET",
        "path": "/sync-policy",
        "source_path": "apps/TopoloCommerce/apps/api/src/routes/venueOperations.js"
      },
      {
        "method": "PUT",
        "path": "/sync-policy",
        "source_path": "apps/TopoloCommerce/apps/api/src/routes/venueOperations.js"
      },
      {
        "method": "GET",
        "path": "/staff-notifications",
        "source_path": "apps/TopoloCommerce/apps/api/src/routes/venueOperations.js"
      },
      {
        "method": "PUT",
        "path": "/staff-notifications/:notificationId",
        "source_path": "apps/TopoloCommerce/apps/api/src/routes/venueOperations.js"
      },
      {
        "method": "GET",
        "path": "/edge/nodes",
        "source_path": "apps/TopoloCommerce/apps/api/src/routes/venueOperations.js"
      },
      {
        "method": "POST",
        "path": "/edge/nodes",
        "source_path": "apps/TopoloCommerce/apps/api/src/routes/venueOperations.js"
      },
      {
        "method": "POST",
        "path": "/edge/bootstrap",
        "source_path": "apps/TopoloCommerce/apps/api/src/routes/venueOperations.js"
      },
      {
        "method": "POST",
        "path": "/edge/push",
        "source_path": "apps/TopoloCommerce/apps/api/src/routes/venueOperations.js"
      },
      {
        "method": "GET",
        "path": "/edge/events",
        "source_path": "apps/TopoloCommerce/apps/api/src/routes/venueOperations.js"
      },
      {
        "method": "POST",
        "path": "/edge/ack",
        "source_path": "apps/TopoloCommerce/apps/api/src/routes/venueOperations.js"
      },
      {
        "method": "POST",
        "path": "/api/internal/workspaces/:workspaceId/renamed",
        "source_path": "apps/TopoloCommerce/apps/api/src/routes/workspaces.js"
      },
      {
        "method": "DELETE",
        "path": "/api/workspaces/:workspaceId",
        "source_path": "apps/TopoloCommerce/apps/api/src/routes/workspaces.js"
      },
      {
        "method": "LITERAL",
        "path": "/privacy/erase",
        "source_path": "apps/TopoloCommerce/apps/api/src/venueQueueCoordinator.js"
      },
      {
        "method": "LITERAL",
        "path": "/snapshot",
        "source_path": "apps/TopoloCommerce/apps/api/src/venueQueueCoordinator.js"
      },
      {
        "method": "LITERAL",
        "path": "/bootstrap",
        "source_path": "apps/TopoloCommerce/apps/api/src/venueQueueCoordinator.js"
      },
      {
        "method": "LITERAL",
        "path": "/draft-orders",
        "source_path": "apps/TopoloCommerce/apps/api/src/venueQueueCoordinator.js"
      },
      {
        "method": "LITERAL",
        "path": "/stream-tickets",
        "source_path": "apps/TopoloCommerce/apps/api/src/venueQueueCoordinator.js"
      },
      {
        "method": "LITERAL",
        "path": "/stream",
        "source_path": "apps/TopoloCommerce/apps/api/src/venueQueueCoordinator.js"
      },
      {
        "method": "GET",
        "path": "/api/voice/review-assets/*",
        "source_path": "apps/TopoloCommerce/apps/api/src/voiceRoutes.js"
      },
      {
        "method": "POST",
        "path": "/api/voice/review-assets",
        "source_path": "apps/TopoloCommerce/apps/api/src/voiceRoutes.js"
      },
      {
        "method": "POST",
        "path": "/api/voice/resolve",
        "source_path": "apps/TopoloCommerce/apps/api/src/voiceRoutes.js"
      },
      {
        "method": "POST",
        "path": "/api/voice/translate",
        "source_path": "apps/TopoloCommerce/apps/api/src/voiceRoutes.js"
      }
    ],
    "ui_routes": [
      {
        "path": "/${path}",
        "source_path": "apps/TopoloCommerce/apps/api/src/mdm.js"
      },
      {
        "path": "/",
        "source_path": "apps/TopoloCommerce/apps/guest/src/App.jsx"
      },
      {
        "path": "/pay/:linkId",
        "source_path": "apps/TopoloCommerce/apps/guest/src/App.jsx"
      },
      {
        "path": "/__preview/experience",
        "source_path": "apps/TopoloCommerce/apps/guest/src/App.jsx"
      },
      {
        "path": "/:venueSlug",
        "source_path": "apps/TopoloCommerce/apps/guest/src/App.jsx"
      },
      {
        "path": "/dashboard",
        "source_path": "apps/TopoloCommerce/apps/ops/src/App.jsx"
      },
      {
        "path": "/venues/:venueId",
        "source_path": "apps/TopoloCommerce/apps/ops/src/App.jsx"
      },
      {
        "path": "/venues/:venueId/tables/print",
        "source_path": "apps/TopoloCommerce/apps/ops/src/App.jsx"
      },
      {
        "path": "/venues/:venueId/:routeKey",
        "source_path": "apps/TopoloCommerce/apps/ops/src/App.jsx"
      },
      {
        "path": "/catalog",
        "source_path": "apps/TopoloCommerce/apps/ops/src/App.jsx"
      },
      {
        "path": "/imports",
        "source_path": "apps/TopoloCommerce/apps/ops/src/App.jsx"
      },
      {
        "path": "/queues",
        "source_path": "apps/TopoloCommerce/apps/ops/src/App.jsx"
      },
      {
        "path": "/resilience",
        "source_path": "apps/TopoloCommerce/apps/ops/src/App.jsx"
      },
      {
        "path": "/team",
        "source_path": "apps/TopoloCommerce/apps/ops/src/App.jsx"
      },
      {
        "path": "/hospitality",
        "source_path": "apps/TopoloCommerce/apps/ops/src/App.jsx"
      },
      {
        "path": "/retail",
        "source_path": "apps/TopoloCommerce/apps/ops/src/App.jsx"
      },
      {
        "path": "/service",
        "source_path": "apps/TopoloCommerce/apps/ops/src/App.jsx"
      },
      {
        "path": "/devices",
        "source_path": "apps/TopoloCommerce/apps/ops/src/App.jsx"
      },
      {
        "path": "/tables",
        "source_path": "apps/TopoloCommerce/apps/ops/src/App.jsx"
      },
      {
        "path": "/settings",
        "source_path": "apps/TopoloCommerce/apps/ops/src/App.jsx"
      },
      {
        "path": "/getting-started",
        "source_path": "apps/TopoloCommerce/apps/ops/src/App.jsx"
      },
      {
        "path": "/launcher",
        "source_path": "apps/TopoloCommerce/apps/station/src/App.jsx"
      },
      {
        "path": "/kitchen/:venueId",
        "source_path": "apps/TopoloCommerce/apps/station/src/App.jsx"
      },
      {
        "path": "/pos/:venueId",
        "source_path": "apps/TopoloCommerce/apps/station/src/App.jsx"
      },
      {
        "path": "/bar/:venueId",
        "source_path": "apps/TopoloCommerce/apps/station/src/App.jsx"
      },
      {
        "path": "/expo/:venueId",
        "source_path": "apps/TopoloCommerce/apps/station/src/App.jsx"
      },
      {
        "path": "/pair/:mode/:venueId",
        "source_path": "apps/TopoloCommerce/apps/station/src/App.jsx"
      }
    ],
    "test_cases": [],
    "database_tables": []
  },
  "documentation": {
    "declared_paths": [
      "internal/apps/commerce",
      "applications/commerce",
      "internal/apps/commerce-design",
      "internal/apps/commerce-modules",
      "internal/apps/commerce-resilience"
    ],
    "present_paths": [
      "internal/apps/commerce",
      "applications/commerce",
      "internal/apps/commerce-design",
      "internal/apps/commerce-modules",
      "internal/apps/commerce-resilience"
    ],
    "missing_paths": [],
    "human_reference": "/systems/topolo-commerce",
    "machine_reference": "/machine/systems/topolo-commerce.json",
    "action_examples": 66,
    "action_schemas": 66
  },
  "source_findings": []
}