{
  "generated_from": "airlock/docs/spec-library.source.json",
  "canonical_url": "https://reunionstudio.io/airlock/docs/spec-library.html",
  "title": "Airlock Spec Library",
  "description": "Search reusable Airlock spec patterns by category or direct source/target system, including Shopify, Etsy, TikTok Shop, TikTok Ads, Amazon Selling Partner, Amazon Ads, Bill.com, Stripe, Square, Toast, QuickBooks, NetSuite, Salesforce, HubSpot, Jira, Linear, ServiceNow, Google Ads, Google Analytics, Google Merchant Center, Google Search Console, Google Business Profile, financial institutions, treasury, website storefront, commerce reconciliation, CRM, marketing, project management, billing, finance, and operations.",
  "collection_note": "Collections link specs together with source links, expectations, and workflow dependencies.",
  "repositories": [
    {
      "name": "airlock-specs",
      "url": "https://github.com/reunionstudio/airlock-specs",
      "purpose": "Machine-readable Airlock specs and ready-made spec collections for builders and agents."
    },
    {
      "name": "airlock-tools",
      "url": "https://github.com/reunionstudio/airlock-tools",
      "purpose": "Tools, examples, and agent-friendly docs for installing and working with Airlock specs."
    }
  ],
  "filters": [
    {
      "label": "All",
      "value": "all"
    },
    {
      "label": "Operations",
      "value": "operations"
    },
    {
      "label": "Project management",
      "value": "project_management"
    },
    {
      "label": "Billing",
      "value": "billing"
    },
    {
      "label": "Finance",
      "value": "finance"
    },
    {
      "label": "Commerce",
      "value": "commerce"
    },
    {
      "label": "CRM",
      "value": "crm"
    },
    {
      "label": "Marketing",
      "value": "marketing"
    },
    {
      "label": "Reconciliation",
      "value": "reconciliation"
    },
    {
      "label": "Treasury",
      "value": "treasury"
    },
    {
      "label": "Collections",
      "value": "collection"
    }
  ],
  "system_filters": [
    {
      "label": "Shopify",
      "value": "shopify"
    },
    {
      "label": "Etsy",
      "value": "etsy"
    },
    {
      "label": "Bill.com",
      "value": "bill_com"
    },
    {
      "label": "Stripe",
      "value": "stripe"
    },
    {
      "label": "Square",
      "value": "square"
    },
    {
      "label": "Toast",
      "value": "toast"
    },
    {
      "label": "QuickBooks",
      "value": "quickbooks"
    },
    {
      "label": "NetSuite",
      "value": "netsuite"
    },
    {
      "label": "Salesforce",
      "value": "salesforce"
    },
    {
      "label": "HubSpot",
      "value": "hubspot"
    },
    {
      "label": "Jira",
      "value": "jira"
    },
    {
      "label": "Linear",
      "value": "linear"
    },
    {
      "label": "ServiceNow",
      "value": "servicenow"
    },
    {
      "label": "Google Ads",
      "value": "google_ads"
    },
    {
      "label": "Google Analytics",
      "value": "google_analytics"
    },
    {
      "label": "Google Merchant Center",
      "value": "google_merchant_center"
    },
    {
      "label": "Google Search Console",
      "value": "google_search_console"
    },
    {
      "label": "Google Business Profile",
      "value": "google_business_profile"
    },
    {
      "label": "TikTok Shop",
      "value": "tiktok_shop"
    },
    {
      "label": "TikTok Ads",
      "value": "tiktok_ads"
    },
    {
      "label": "Amazon Selling Partner",
      "value": "amazon_selling_partner"
    },
    {
      "label": "Amazon Ads",
      "value": "amazon_ads"
    },
    {
      "label": "Website storefront",
      "value": "website_storefront"
    },
    {
      "label": "Commerce reconciliation",
      "value": "commerce_reconciliation"
    },
    {
      "label": "Financial institutions",
      "value": "financial_institution"
    },
    {
      "label": "Treasury",
      "value": "treasury"
    },
    {
      "label": "Flexport",
      "value": "flexport"
    },
    {
      "label": "Ad platforms",
      "value": "ad_platforms"
    },
    {
      "label": "Subscription platforms",
      "value": "subscription_platforms"
    }
  ],
  "items": [
    {
      "id": "projects_catalog",
      "type": "spec",
      "domains": [
        "operations",
        "project_management"
      ],
      "version": "1.0.0",
      "summary": "Master project codes, project names, clients, and statuses. Used as the project anchor for time and invoice specs.",
      "needs": [
        "None."
      ],
      "usefulFor": [
        "Project registries",
        "Project-code alignment",
        "PSA/PM-style project masters"
      ],
      "extendWith": [
        "Project phases",
        "Status enums",
        "Parent/child project hierarchy"
      ],
      "searchTerms": [
        "project codes",
        "project names",
        "client",
        "status",
        "project master",
        "registry",
        "psa",
        "pm",
        "timesheets",
        "invoices"
      ],
      "createSpecPayloads": [
        {
          "specName": "projects",
          "specConfig": {
            "column_config": [
              {
                "description": "Stable project key used across timesheets and invoices",
                "name": "project_code",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "Display name",
                "name": "project_name",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Customer / client label",
                "name": "client_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "active or inactive",
                "name": "status",
                "tests": [
                  "not_null"
                ],
                "type": "string",
                "format": "allowed_values:[active,inactive]"
              }
            ],
            "core_config": {
              "current_mode": "append",
              "description": "Project catalog (master list for cross-spec references)",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": false,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Projects catalog",
              "spec_name": "projects"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "file_type": "csv",
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": false,
              "guest_roles": [],
              "isolated_access_level": null,
              "isolated_directories_enabled": false,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Stable project key used across timesheets and invoices\",\n      \"name\": \"project_code\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Display name\",\n      \"name\": \"project_name\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Customer / client label\",\n      \"name\": \"client_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"active or inactive\",\n      \"format\": \"allowed_values:[active,inactive]\",\n      \"name\": \"status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"append\",\n    \"description\": \"Project catalog (master list for cross-spec references)\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": false,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Projects catalog\",\n    \"spec_name\": \"projects\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": false,\n    \"guest_roles\": [],\n    \"isolated_access_level\": null,\n    \"isolated_directories_enabled\": false,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));"
        }
      ]
    },
    {
      "id": "ops_issues",
      "type": "spec",
      "domains": [
        "project_management",
        "operations"
      ],
      "version": "1.0.0",
      "summary": "General issue and ticket register for concerns found by people or agents. Use it as the catch-all place to send work that needs attention before the process has a more specific spec.",
      "needs": [
        "An in-app role for agents or operators. The sample call uses ops_agent."
      ],
      "usefulFor": [
        "Agent-created tickets",
        "Operational issue tracking",
        "Project follow-up",
        "Exception queues",
        "Early process discovery"
      ],
      "extendWith": [
        "Specialized issue specs for repeated patterns",
        "Source links from the specs that raise issues",
        "Workflow milestones for triage and resolution"
      ],
      "similarShape": [
        "Ticket queues in project management tools",
        "Issue registers in operations and support workflows"
      ],
      "searchTerms": [
        "tickets",
        "issues",
        "issue tracking",
        "ticket tracking",
        "project management",
        "tasks",
        "triage",
        "agent issues",
        "exceptions",
        "follow up",
        "ops_issues"
      ],
      "createSpecPayloads": [
        {
          "specName": "ops_issues",
          "specConfig": {
            "column_config": [
              {
                "description": "issue id",
                "name": "issue_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "opened at",
                "name": "opened_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "opened by actor",
                "name": "opened_by_actor",
                "tests": [],
                "type": "string"
              },
              {
                "description": "source process",
                "name": "source_process",
                "tests": [],
                "type": "string"
              },
              {
                "description": "source spec name",
                "name": "source_spec_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "source path",
                "name": "source_path",
                "tests": [],
                "type": "string"
              },
              {
                "description": "source filename",
                "name": "source_filename",
                "tests": [],
                "type": "string"
              },
              {
                "description": "source record id",
                "name": "source_record_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "related spec name",
                "name": "related_spec_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "related record id",
                "name": "related_record_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "issue type",
                "name": "issue_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "severity",
                "name": "severity",
                "tests": [],
                "type": "string"
              },
              {
                "description": "status",
                "name": "status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "owner role",
                "name": "owner_role",
                "tests": [],
                "type": "string"
              },
              {
                "description": "assignee",
                "name": "assignee",
                "tests": [],
                "type": "string"
              },
              {
                "description": "concern summary",
                "name": "concern_summary",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "recommended action",
                "name": "recommended_action",
                "tests": [],
                "type": "string"
              },
              {
                "description": "resolution summary",
                "name": "resolution_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "resolved at",
                "name": "resolved_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Issue-specific categorization and structured details that may evolve over time.",
                "name": "issue_details",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Flexible evidence captured by the agent or reconciliation process.",
                "name": "evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "One or more proposed operational actions or targets.",
                "name": "suggested_actions",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Flexible operational issue register for concerns discovered during agent review or reconciliation. Rows soft-reference the source work and can later be standardized into specialized issue types.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Ops issues",
              "spec_name": "ops_issues"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "file_type": "csv",
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "role_name": "ops_agent",
                  "access_level": "full_access"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            },
            "rules": [
              {
                "type": "variant_shape",
                "field": "issue_details",
                "paths": [
                  {
                    "json_path": "$.category",
                    "type": "string",
                    "required": true
                  },
                  {
                    "json_path": "$.problem_code",
                    "type": "string",
                    "required": true
                  },
                  {
                    "json_path": "$.standardization_status",
                    "type": "string",
                    "required": false
                  }
                ],
                "allowed_root_keys": [
                  "category",
                  "problem_code",
                  "standardization_status"
                ]
              },
              {
                "type": "variant_shape",
                "field": "evidence",
                "paths": [
                  {
                    "json_path": "$.employee.username",
                    "type": "string",
                    "required": true
                  },
                  {
                    "json_path": "$.bill_com.payee_external_id",
                    "type": "string",
                    "required": false
                  },
                  {
                    "json_path": "$.review.review_id",
                    "type": "string",
                    "required": false
                  }
                ],
                "allowed_root_keys": [
                  "employee",
                  "bill_com",
                  "review"
                ]
              },
              {
                "type": "variant_shape",
                "field": "suggested_actions",
                "paths": [
                  {
                    "json_path": "$[0].action",
                    "type": "string",
                    "required": true
                  },
                  {
                    "json_path": "$[0].target_spec",
                    "type": "string",
                    "required": true
                  },
                  {
                    "json_path": "$[0].target_record_id",
                    "type": "string",
                    "required": false
                  }
                ],
                "require_object": false
              }
            ]
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"issue id\",\n      \"name\": \"issue_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"opened at\",\n      \"name\": \"opened_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"opened by actor\",\n      \"name\": \"opened_by_actor\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"source process\",\n      \"name\": \"source_process\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"source spec name\",\n      \"name\": \"source_spec_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"source path\",\n      \"name\": \"source_path\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"source filename\",\n      \"name\": \"source_filename\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"source record id\",\n      \"name\": \"source_record_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"related spec name\",\n      \"name\": \"related_spec_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"related record id\",\n      \"name\": \"related_record_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"issue type\",\n      \"name\": \"issue_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"severity\",\n      \"name\": \"severity\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"status\",\n      \"name\": \"status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"owner role\",\n      \"name\": \"owner_role\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"assignee\",\n      \"name\": \"assignee\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"concern summary\",\n      \"name\": \"concern_summary\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"recommended action\",\n      \"name\": \"recommended_action\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"resolution summary\",\n      \"name\": \"resolution_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"resolved at\",\n      \"name\": \"resolved_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Issue-specific categorization and structured details that may evolve over time.\",\n      \"name\": \"issue_details\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Flexible evidence captured by the agent or reconciliation process.\",\n      \"name\": \"evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"One or more proposed operational actions or targets.\",\n      \"name\": \"suggested_actions\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Flexible operational issue register for concerns discovered during agent review or reconciliation. Rows soft-reference the source work and can later be standardized into specialized issue types.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Ops issues\",\n    \"spec_name\": \"ops_issues\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"file_type\": \"csv\",\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"role_name\": \"ops_agent\",\n        \"access_level\": \"full_access\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  },\n  \"rules\": [\n    {\n      \"type\": \"variant_shape\",\n      \"field\": \"issue_details\",\n      \"paths\": [\n        {\n          \"json_path\": \"$.category\",\n          \"type\": \"string\",\n          \"required\": true\n        },\n        {\n          \"json_path\": \"$.problem_code\",\n          \"type\": \"string\",\n          \"required\": true\n        },\n        {\n          \"json_path\": \"$.standardization_status\",\n          \"type\": \"string\",\n          \"required\": false\n        }\n      ],\n      \"allowed_root_keys\": [\n        \"category\",\n        \"problem_code\",\n        \"standardization_status\"\n      ]\n    },\n    {\n      \"type\": \"variant_shape\",\n      \"field\": \"evidence\",\n      \"paths\": [\n        {\n          \"json_path\": \"$.employee.username\",\n          \"type\": \"string\",\n          \"required\": true\n        },\n        {\n          \"json_path\": \"$.bill_com.payee_external_id\",\n          \"type\": \"string\",\n          \"required\": false\n        },\n        {\n          \"json_path\": \"$.review.review_id\",\n          \"type\": \"string\",\n          \"required\": false\n        }\n      ],\n      \"allowed_root_keys\": [\n        \"employee\",\n        \"bill_com\",\n        \"review\"\n      ]\n    },\n    {\n      \"type\": \"variant_shape\",\n      \"field\": \"suggested_actions\",\n      \"paths\": [\n        {\n          \"json_path\": \"$[0].action\",\n          \"type\": \"string\",\n          \"required\": true\n        },\n        {\n          \"json_path\": \"$[0].target_spec\",\n          \"type\": \"string\",\n          \"required\": true\n        },\n        {\n          \"json_path\": \"$[0].target_record_id\",\n          \"type\": \"string\",\n          \"required\": false\n        }\n      ],\n      \"require_object\": false\n    }\n  ]\n}$$));"
        }
      ]
    },
    {
      "id": "agent_product_feedback",
      "type": "spec",
      "domains": [
        "operations",
        "project_management"
      ],
      "version": "1.0.0",
      "summary": "Feature requests, bug reports, docs gaps, and spec-library gaps reported by agents. Use it when the problem is about Airlock, docs, specs, generated SQL, integrations, or agent ergonomics rather than a customer operational issue.",
      "needs": [
        "An in-app role for agents or maintainers. The sample call uses product_feedback_agent."
      ],
      "usefulFor": [
        "Agent-reported product bugs",
        "Feature requests discovered during real work",
        "Docs and spec-library gaps",
        "Integration modeling gaps",
        "Structured product triage"
      ],
      "extendWith": [
        "Links from recurring feedback into roadmap or issue-tracker specs",
        "Promotion of repeated feedback types into validation rules or product improvements",
        "Routing into Jira, Linear, GitHub, or other delivery systems"
      ],
      "similarShape": [
        "Product feedback queues",
        "Bug report intake",
        "Feature request triage",
        "Developer experience issue trackers"
      ],
      "searchTerms": [
        "agent feedback",
        "feature request",
        "bug report",
        "product bug",
        "docs gap",
        "spec gap",
        "library gap",
        "generated sql issue",
        "integration gap",
        "developer experience",
        "agent_product_feedback"
      ],
      "createSpecPayloads": [
        {
          "specName": "agent_product_feedback",
          "specConfig": {
            "column_config": [
              {
                "description": "Feedback id",
                "name": "feedback_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the feedback was reported",
                "name": "reported_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Agent, tool, or workflow that reported the feedback",
                "name": "reported_by_agent",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Agent session or run id when available",
                "name": "agent_session_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Workspace, tenant, or environment where the issue appeared",
                "name": "workspace_or_tenant",
                "tests": [],
                "type": "string"
              },
              {
                "description": "User task or automation that exposed the issue",
                "name": "source_task",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Product area such as docs, spec_library, stored_procedure, website, permissions, ingestion, reconciliation, or integration",
                "name": "product_area",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Bug, feature_request, docs_gap, spec_gap, usability, performance, security_review, or other type",
                "name": "feedback_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Business or product severity",
                "name": "severity",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Triage priority",
                "name": "priority",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Open, triaged, accepted, declined, resolved, or other status",
                "name": "status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Short feedback title",
                "name": "title",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Plain-language summary",
                "name": "summary",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Expected behavior or desired capability",
                "name": "expected_behavior",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Actual behavior seen by the agent",
                "name": "actual_behavior",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Compact reproduction steps when available",
                "name": "reproduction_steps",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Related Airlock spec name when relevant",
                "name": "affected_spec_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Related stored procedure or API surface when relevant",
                "name": "affected_procedure",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Related repo or docs file path when relevant",
                "name": "affected_file_path",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Role or team responsible for triage",
                "name": "owner_role",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Triage outcome or routing decision",
                "name": "triage_decision",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Resolution summary",
                "name": "resolution_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Resolution timestamp",
                "name": "resolved_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Structured runtime, browser, database, library, or integration context.",
                "name": "environment_details",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Logs, error payloads, screenshots, source references, or other evidence.",
                "name": "evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Suggested product, docs, spec, or code change.",
                "name": "suggested_fix",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Feature requests, bug reports, docs gaps, and spec-library gaps reported by agents while they work.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Agent product feedback",
              "spec_name": "agent_product_feedback"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "product_feedback_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Feedback id\",\n      \"name\": \"feedback_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the feedback was reported\",\n      \"name\": \"reported_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Agent, tool, or workflow that reported the feedback\",\n      \"name\": \"reported_by_agent\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Agent session or run id when available\",\n      \"name\": \"agent_session_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Workspace, tenant, or environment where the issue appeared\",\n      \"name\": \"workspace_or_tenant\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"User task or automation that exposed the issue\",\n      \"name\": \"source_task\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Product area such as docs, spec_library, stored_procedure, website, permissions, ingestion, reconciliation, or integration\",\n      \"name\": \"product_area\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Bug, feature_request, docs_gap, spec_gap, usability, performance, security_review, or other type\",\n      \"name\": \"feedback_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Business or product severity\",\n      \"name\": \"severity\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Triage priority\",\n      \"name\": \"priority\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Open, triaged, accepted, declined, resolved, or other status\",\n      \"name\": \"status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Short feedback title\",\n      \"name\": \"title\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary\",\n      \"name\": \"summary\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Expected behavior or desired capability\",\n      \"name\": \"expected_behavior\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Actual behavior seen by the agent\",\n      \"name\": \"actual_behavior\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Compact reproduction steps when available\",\n      \"name\": \"reproduction_steps\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Related Airlock spec name when relevant\",\n      \"name\": \"affected_spec_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Related stored procedure or API surface when relevant\",\n      \"name\": \"affected_procedure\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Related repo or docs file path when relevant\",\n      \"name\": \"affected_file_path\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Role or team responsible for triage\",\n      \"name\": \"owner_role\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Triage outcome or routing decision\",\n      \"name\": \"triage_decision\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Resolution summary\",\n      \"name\": \"resolution_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Resolution timestamp\",\n      \"name\": \"resolved_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Structured runtime, browser, database, library, or integration context.\",\n      \"name\": \"environment_details\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Logs, error payloads, screenshots, source references, or other evidence.\",\n      \"name\": \"evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Suggested product, docs, spec, or code change.\",\n      \"name\": \"suggested_fix\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Feature requests, bug reports, docs gaps, and spec-library gaps reported by agents while they work.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Agent product feedback\",\n    \"spec_name\": \"agent_product_feedback\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"product_feedback_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));"
        }
      ]
    },
    {
      "id": "timesheet_weekly",
      "type": "spec",
      "domains": [
        "operations"
      ],
      "version": "1.3.0",
      "summary": "Weekly time lines with date, hours, billable flag, project/task/subtask, and notes. Optional guest folders and weekly Submitted expectation.",
      "needs": [
        "timesheet_guest_role or timesheet_guest_roles when guest access is enabled."
      ],
      "usefulFor": [
        "Consultant time capture",
        "Agency timesheets",
        "Weekly cutoff reminders"
      ],
      "similarShape": [
        "Harvest",
        "Toggl Track",
        "QuickBooks Time-style weekly rows"
      ],
      "searchTerms": [
        "weekly time",
        "hours",
        "billable",
        "project",
        "task",
        "subtask",
        "notes",
        "guest access",
        "cutoff",
        "submitted expectation",
        "harvest",
        "toggl",
        "quickbooks time"
      ],
      "createSpecPayloads": [
        {
          "specName": "timesheet_lines",
          "specConfig": {
            "column_config": [
              {
                "description": "Work date",
                "name": "work_date",
                "tests": [
                  "not_null"
                ],
                "type": "date",
                "format": "%Y-%m-%d"
              },
              {
                "description": "Decimal hours",
                "name": "hours",
                "tests": [
                  "not_null"
                ],
                "type": "number",
                "format": "min_value:0.01,max_value:24,precision:8,scale:2"
              },
              {
                "description": "Billable line",
                "name": "billable",
                "tests": [
                  "not_null"
                ],
                "type": "boolean",
                "format": "true_values:[true,yes,Y,1,t],false_values:[false,no,N,0,f]"
              },
              {
                "description": "Project reference",
                "name": "project_code",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Optional task",
                "name": "task",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Optional subtask / activity",
                "name": "subtask",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Notes",
                "name": "notes",
                "tests": [],
                "type": "string"
              }
            ],
            "core_config": {
              "current_mode": "append",
              "description": "Weekly timesheet line items",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": false,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Timesheet lines",
              "spec_name": "timesheet_lines",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": true,
                  "description": "Draft",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": true,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for payroll",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Approved / locked",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Approved",
                  "step_order": 3,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "file_type": "excel",
                "worksheet_name": "Time Entries",
                "worksheet_selection": "by_name"
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "role_name": "employee",
                  "access_level": "full_access"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Work date\",\n      \"format\": \"%Y-%m-%d\",\n      \"name\": \"work_date\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"date\"\n    },\n    {\n      \"description\": \"Decimal hours\",\n      \"format\": \"min_value:0.01,max_value:24,precision:8,scale:2\",\n      \"name\": \"hours\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Billable line\",\n      \"format\": \"true_values:[true,yes,Y,1,t],false_values:[false,no,N,0,f]\",\n      \"name\": \"billable\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"boolean\"\n    },\n    {\n      \"description\": \"Project reference\",\n      \"name\": \"project_code\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Optional task\",\n      \"name\": \"task\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Optional subtask / activity\",\n      \"name\": \"subtask\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Notes\",\n      \"name\": \"notes\",\n      \"tests\": [],\n      \"type\": \"string\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"append\",\n    \"description\": \"Weekly timesheet line items\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": false,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Timesheet lines\",\n    \"spec_name\": \"timesheet_lines\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": true,\n        \"description\": \"Draft\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": true,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for payroll\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Approved / locked\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Approved\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"file_type\": \"excel\",\n      \"worksheet_name\": \"Time Entries\",\n      \"worksheet_selection\": \"by_name\"\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"employee\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));"
        }
      ],
      "createExpectations": [
        {
          "expectation_name": "demo_weekly_timesheet_delivery",
          "spec_name": "timesheet_lines",
          "description": "Weekly delivery expectation for timesheet lines: files should reach the Submitted milestone by the rolling weekly cutoff (schedule operator due_weekly). Advisory by default.",
          "status": "active",
          "enforcement_mode": "advisory",
          "target_milestone": "Submitted",
          "logic": "all",
          "clauses": [
            {
              "type": "schedule",
              "label": "weekly_timesheet_cutoff",
              "operator": "due_weekly",
              "weekday": "friday",
              "time": "17:00",
              "timezone": "America/New_York"
            }
          ],
          "applies_to": {}
        }
      ]
    },
    {
      "id": "invoice_lines",
      "type": "spec",
      "domains": [
        "billing"
      ],
      "version": "1.0.0",
      "summary": "Invoice line items for billing and AR export handoff, usually tied to projects and customers.",
      "needs": [
        "None."
      ],
      "usefulFor": [
        "Structured invoice lines",
        "Billing events",
        "Revenue-recognition handoff"
      ],
      "extendWith": [
        "Tax",
        "Discounts",
        "Multi-currency fields"
      ],
      "searchTerms": [
        "invoice",
        "line items",
        "ar export",
        "projects",
        "customers",
        "quickbooks",
        "netsuite",
        "stripe billing",
        "revenue recognition"
      ],
      "createSpecPayloads": [
        {
          "specName": "invoice_lines",
          "specConfig": {
            "column_config": [
              {
                "description": "Invoice document id",
                "name": "invoice_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Line number",
                "name": "line_no",
                "tests": [
                  "not_null"
                ],
                "type": "integer"
              },
              {
                "description": "Invoice date",
                "name": "invoice_date",
                "tests": [
                  "not_null"
                ],
                "type": "date",
                "format": "%Y-%m-%d"
              },
              {
                "description": "Project reference",
                "name": "project_code",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Line amount",
                "name": "amount",
                "tests": [
                  "not_null"
                ],
                "type": "number"
              },
              {
                "description": "Tax portion",
                "name": "tax_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency code",
                "name": "currency",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Billable to customer",
                "name": "billable",
                "tests": [
                  "not_null"
                ],
                "type": "boolean",
                "format": "true_values:[true,yes,Y,1],false_values:[false,no,N,0]"
              },
              {
                "description": "Line memo",
                "name": "memo",
                "tests": [],
                "type": "string"
              }
            ],
            "core_config": {
              "current_mode": "append",
              "description": "Invoice lines for billing / AR handoff",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": false,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Invoice lines",
              "spec_name": "invoice_lines",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": true,
                  "description": "Draft invoice lines",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for posting",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Posted / locked",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Approved",
                  "step_order": 3,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "file_type": "csv",
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": false,
              "guest_roles": [],
              "isolated_access_level": null,
              "isolated_directories_enabled": false,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Invoice document id\",\n      \"name\": \"invoice_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Line number\",\n      \"name\": \"line_no\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Invoice date\",\n      \"format\": \"%Y-%m-%d\",\n      \"name\": \"invoice_date\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"date\"\n    },\n    {\n      \"description\": \"Project reference\",\n      \"name\": \"project_code\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Line amount\",\n      \"name\": \"amount\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Tax portion\",\n      \"name\": \"tax_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency code\",\n      \"name\": \"currency\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Billable to customer\",\n      \"format\": \"true_values:[true,yes,Y,1],false_values:[false,no,N,0]\",\n      \"name\": \"billable\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"boolean\"\n    },\n    {\n      \"description\": \"Line memo\",\n      \"name\": \"memo\",\n      \"tests\": [],\n      \"type\": \"string\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"append\",\n    \"description\": \"Invoice lines for billing / AR handoff\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": false,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Invoice lines\",\n    \"spec_name\": \"invoice_lines\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": true,\n        \"description\": \"Draft invoice lines\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for posting\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Posted / locked\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Approved\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": false,\n    \"guest_roles\": [],\n    \"isolated_access_level\": null,\n    \"isolated_directories_enabled\": false,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));"
        }
      ]
    },
    {
      "id": "budget_role_scoped",
      "type": "spec",
      "domains": [
        "finance"
      ],
      "version": "1.3.0",
      "summary": "FY-style budget requests with workflow milestones and role-scoped filename/account-prefix rules.",
      "needs": [
        "budget_finance_role, budget_hr_role, and budget_marketing_role; all distinct."
      ],
      "usefulFor": [
        "Departmental budget submissions",
        "Finance/HR/marketing planning cycles"
      ],
      "similarShape": [
        "Workday",
        "Adaptive",
        "Anaplan-style planning roles"
      ],
      "searchTerms": [
        "budget requests",
        "planning",
        "fiscal year",
        "departments",
        "role scoped",
        "account prefixes",
        "finance",
        "hr",
        "marketing",
        "workday",
        "adaptive",
        "anaplan"
      ],
      "createSpecPayloads": [
        {
          "specName": "budget_requests",
          "specConfig": {
            "column_config": [
              {
                "description": "Fiscal year",
                "name": "fiscal_year",
                "tests": [
                  "not_null"
                ],
                "type": "string",
                "format": "allowed_values:2026"
              },
              {
                "description": "Department (must align with role map)",
                "name": "department_name",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Account code",
                "name": "account",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "Request amount",
                "name": "request",
                "tests": [
                  "not_null"
                ],
                "type": "integer"
              },
              {
                "description": "Narrative",
                "name": "narrative",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              }
            ],
            "core_config": {
              "current_mode": "append",
              "description": "Budget requests — role-scoped accounts (reference_map) + department filename prefix",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_multi_role": true,
              "is_published": false,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Budget requests (role-scoped)",
              "spec_name": "budget_requests",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": true,
                  "description": "Draft budget lines",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": true,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted request",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Finance / planning recommendation",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Recommended",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Final approval — locked",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Recommended",
                  "require_comment": true,
                  "step_name": "Approved",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "file_type": "excel",
                "worksheet_name": "Budget Request",
                "worksheet_selection": "by_name"
              },
              "filename_rules": {
                "enforce_filename_pattern": true,
                "filename_pattern": "^{reference_map:role_department}_.*$",
                "sample_filenames": "finance_budget_submission_2026, human_resources_budget_submission_2026, marketing_budget_submission_2026"
              }
            },
            "reference_maps": [
              {
                "name": "role_department",
                "mapping": {
                  "finance": "finance",
                  "hr": "human_resources",
                  "marketing": "marketing"
                }
              },
              {
                "name": "role_department_code",
                "mapping": {
                  "finance": "133",
                  "hr": "220",
                  "marketing": "310"
                }
              }
            ],
            "rules": [
              {
                "type": "reference_map",
                "field": "account",
                "reference_map": "role_department_code",
                "match_type": "prefix"
              }
            ],
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "finance"
                },
                {
                  "access_level": "full_access",
                  "role_name": "hr"
                },
                {
                  "access_level": "full_access",
                  "role_name": "marketing"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Fiscal year\",\n      \"format\": \"allowed_values:2026\",\n      \"name\": \"fiscal_year\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Department (must align with role map)\",\n      \"name\": \"department_name\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Account code\",\n      \"name\": \"account\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Request amount\",\n      \"name\": \"request\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Narrative\",\n      \"name\": \"narrative\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"append\",\n    \"description\": \"Budget requests \\u2014 role-scoped accounts (reference_map) + department filename prefix\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_multi_role\": true,\n    \"is_published\": false,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Budget requests (role-scoped)\",\n    \"spec_name\": \"budget_requests\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": true,\n        \"description\": \"Draft budget lines\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": true,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted request\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Finance / planning recommendation\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Recommended\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Final approval \\u2014 locked\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Recommended\",\n        \"require_comment\": true,\n        \"step_name\": \"Approved\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"file_type\": \"excel\",\n      \"worksheet_name\": \"Budget Request\",\n      \"worksheet_selection\": \"by_name\"\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": true,\n      \"filename_pattern\": \"^{reference_map:role_department}_.*$\",\n      \"sample_filenames\": \"finance_budget_submission_2026, human_resources_budget_submission_2026, marketing_budget_submission_2026\"\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"finance\"\n      },\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"hr\"\n      },\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"marketing\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"reference_maps\": [\n    {\n      \"mapping\": {\n        \"finance\": \"finance\",\n        \"hr\": \"human_resources\",\n        \"marketing\": \"marketing\"\n      },\n      \"name\": \"role_department\"\n    },\n    {\n      \"mapping\": {\n        \"finance\": \"133\",\n        \"hr\": \"220\",\n        \"marketing\": \"310\"\n      },\n      \"name\": \"role_department_code\"\n    }\n  ],\n  \"rules\": [\n    {\n      \"field\": \"account\",\n      \"match_type\": \"prefix\",\n      \"reference_map\": \"role_department_code\",\n      \"type\": \"reference_map\"\n    }\n  ],\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));"
        }
      ]
    },
    {
      "id": "business_operations_suite",
      "type": "collection",
      "domains": [
        "operations",
        "billing",
        "finance"
      ],
      "version": "1.5.0",
      "summary": "Spec collection that links projects_catalog, timesheet_weekly, invoice_lines, and budget_role_scoped.",
      "includes": [
        "projects_catalog",
        "timesheet_weekly",
        "invoice_lines",
        "budget_role_scoped"
      ],
      "needs": [
        "Timesheet guest roles when guest access is on.",
        "The three budget role slots."
      ],
      "usefulFor": [
        "Small-business operations: projects, time, invoices, and annual budget submissions"
      ],
      "links": [
        {
          "from": "timesheet_weekly",
          "to": "projects_catalog",
          "kind": "source_link",
          "description": "Timesheet lines use project codes from the project catalog."
        },
        {
          "from": "invoice_lines",
          "to": "projects_catalog",
          "kind": "source_link",
          "description": "Invoice lines use project codes from the project catalog."
        },
        {
          "from": "timesheet_weekly",
          "to": "weekly_submitted_expectation",
          "kind": "expectation",
          "description": "Weekly timesheet delivery expectation when enabled."
        }
      ],
      "searchTerms": [
        "spec collection",
        "suite",
        "small business",
        "smb",
        "quickbooks",
        "planning",
        "end to end",
        "source links",
        "expectations",
        "workflow dependencies"
      ],
      "createSpecPayloads": [
        {
          "specName": "projects",
          "specConfig": {
            "column_config": [
              {
                "description": "Stable project key used across timesheets and invoices",
                "name": "project_code",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "Display name",
                "name": "project_name",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Customer / client label",
                "name": "client_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "active or inactive",
                "name": "status",
                "tests": [
                  "not_null"
                ],
                "type": "string",
                "format": "allowed_values:[active,inactive]"
              }
            ],
            "core_config": {
              "current_mode": "append",
              "description": "Project catalog (master list for cross-spec references)",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": false,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Projects catalog",
              "spec_name": "projects"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "file_type": "csv",
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": false,
              "guest_roles": [],
              "isolated_access_level": null,
              "isolated_directories_enabled": false,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Stable project key used across timesheets and invoices\",\n      \"name\": \"project_code\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Display name\",\n      \"name\": \"project_name\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Customer / client label\",\n      \"name\": \"client_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"active or inactive\",\n      \"format\": \"allowed_values:[active,inactive]\",\n      \"name\": \"status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"append\",\n    \"description\": \"Project catalog (master list for cross-spec references)\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": false,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Projects catalog\",\n    \"spec_name\": \"projects\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": false,\n    \"guest_roles\": [],\n    \"isolated_access_level\": null,\n    \"isolated_directories_enabled\": false,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));"
        },
        {
          "specName": "timesheet_lines",
          "specConfig": {
            "column_config": [
              {
                "description": "Work date",
                "name": "work_date",
                "tests": [
                  "not_null"
                ],
                "type": "date",
                "format": "%Y-%m-%d"
              },
              {
                "description": "Decimal hours",
                "name": "hours",
                "tests": [
                  "not_null"
                ],
                "type": "number",
                "format": "min_value:0.01,max_value:24,precision:8,scale:2"
              },
              {
                "description": "Billable line",
                "name": "billable",
                "tests": [
                  "not_null"
                ],
                "type": "boolean",
                "format": "true_values:[true,yes,Y,1,t],false_values:[false,no,N,0,f]"
              },
              {
                "description": "Project reference",
                "name": "project_code",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Optional task",
                "name": "task",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Optional subtask / activity",
                "name": "subtask",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Notes",
                "name": "notes",
                "tests": [],
                "type": "string"
              }
            ],
            "core_config": {
              "current_mode": "append",
              "description": "Weekly timesheet line items",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": false,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Timesheet lines",
              "spec_name": "timesheet_lines",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": true,
                  "description": "Draft",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": true,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for payroll",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Approved / locked",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Approved",
                  "step_order": 3,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "file_type": "excel",
                "worksheet_name": "Time Entries",
                "worksheet_selection": "by_name"
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "role_name": "employee",
                  "access_level": "full_access"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Work date\",\n      \"format\": \"%Y-%m-%d\",\n      \"name\": \"work_date\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"date\"\n    },\n    {\n      \"description\": \"Decimal hours\",\n      \"format\": \"min_value:0.01,max_value:24,precision:8,scale:2\",\n      \"name\": \"hours\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Billable line\",\n      \"format\": \"true_values:[true,yes,Y,1,t],false_values:[false,no,N,0,f]\",\n      \"name\": \"billable\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"boolean\"\n    },\n    {\n      \"description\": \"Project reference\",\n      \"name\": \"project_code\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Optional task\",\n      \"name\": \"task\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Optional subtask / activity\",\n      \"name\": \"subtask\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Notes\",\n      \"name\": \"notes\",\n      \"tests\": [],\n      \"type\": \"string\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"append\",\n    \"description\": \"Weekly timesheet line items\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": false,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Timesheet lines\",\n    \"spec_name\": \"timesheet_lines\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": true,\n        \"description\": \"Draft\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": true,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for payroll\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Approved / locked\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Approved\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"file_type\": \"excel\",\n      \"worksheet_name\": \"Time Entries\",\n      \"worksheet_selection\": \"by_name\"\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"employee\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));"
        },
        {
          "specName": "invoice_lines",
          "specConfig": {
            "column_config": [
              {
                "description": "Invoice document id",
                "name": "invoice_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Line number",
                "name": "line_no",
                "tests": [
                  "not_null"
                ],
                "type": "integer"
              },
              {
                "description": "Invoice date",
                "name": "invoice_date",
                "tests": [
                  "not_null"
                ],
                "type": "date",
                "format": "%Y-%m-%d"
              },
              {
                "description": "Project reference",
                "name": "project_code",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Line amount",
                "name": "amount",
                "tests": [
                  "not_null"
                ],
                "type": "number"
              },
              {
                "description": "Tax portion",
                "name": "tax_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency code",
                "name": "currency",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Billable to customer",
                "name": "billable",
                "tests": [
                  "not_null"
                ],
                "type": "boolean",
                "format": "true_values:[true,yes,Y,1],false_values:[false,no,N,0]"
              },
              {
                "description": "Line memo",
                "name": "memo",
                "tests": [],
                "type": "string"
              }
            ],
            "core_config": {
              "current_mode": "append",
              "description": "Invoice lines for billing / AR handoff",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": false,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Invoice lines",
              "spec_name": "invoice_lines",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": true,
                  "description": "Draft invoice lines",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for posting",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Posted / locked",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Approved",
                  "step_order": 3,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "file_type": "csv",
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": false,
              "guest_roles": [],
              "isolated_access_level": null,
              "isolated_directories_enabled": false,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Invoice document id\",\n      \"name\": \"invoice_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Line number\",\n      \"name\": \"line_no\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Invoice date\",\n      \"format\": \"%Y-%m-%d\",\n      \"name\": \"invoice_date\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"date\"\n    },\n    {\n      \"description\": \"Project reference\",\n      \"name\": \"project_code\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Line amount\",\n      \"name\": \"amount\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Tax portion\",\n      \"name\": \"tax_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency code\",\n      \"name\": \"currency\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Billable to customer\",\n      \"format\": \"true_values:[true,yes,Y,1],false_values:[false,no,N,0]\",\n      \"name\": \"billable\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"boolean\"\n    },\n    {\n      \"description\": \"Line memo\",\n      \"name\": \"memo\",\n      \"tests\": [],\n      \"type\": \"string\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"append\",\n    \"description\": \"Invoice lines for billing / AR handoff\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": false,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Invoice lines\",\n    \"spec_name\": \"invoice_lines\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": true,\n        \"description\": \"Draft invoice lines\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for posting\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Posted / locked\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Approved\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": false,\n    \"guest_roles\": [],\n    \"isolated_access_level\": null,\n    \"isolated_directories_enabled\": false,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));"
        },
        {
          "specName": "budget_requests",
          "specConfig": {
            "column_config": [
              {
                "description": "Fiscal year",
                "name": "fiscal_year",
                "tests": [
                  "not_null"
                ],
                "type": "string",
                "format": "allowed_values:2026"
              },
              {
                "description": "Department (must align with role map)",
                "name": "department_name",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Account code",
                "name": "account",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "Request amount",
                "name": "request",
                "tests": [
                  "not_null"
                ],
                "type": "integer"
              },
              {
                "description": "Narrative",
                "name": "narrative",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              }
            ],
            "core_config": {
              "current_mode": "append",
              "description": "Budget requests — role-scoped accounts (reference_map) + department filename prefix",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_multi_role": true,
              "is_published": false,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Budget requests (role-scoped)",
              "spec_name": "budget_requests",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": true,
                  "description": "Draft budget lines",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": true,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted request",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Finance / planning recommendation",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Recommended",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Final approval — locked",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Recommended",
                  "require_comment": true,
                  "step_name": "Approved",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "file_type": "excel",
                "worksheet_name": "Budget Request",
                "worksheet_selection": "by_name"
              },
              "filename_rules": {
                "enforce_filename_pattern": true,
                "filename_pattern": "^{reference_map:role_department}_.*$",
                "sample_filenames": "finance_budget_submission_2026, human_resources_budget_submission_2026, marketing_budget_submission_2026"
              }
            },
            "reference_maps": [
              {
                "name": "role_department",
                "mapping": {
                  "finance": "finance",
                  "hr": "human_resources",
                  "marketing": "marketing"
                }
              },
              {
                "name": "role_department_code",
                "mapping": {
                  "finance": "133",
                  "hr": "220",
                  "marketing": "310"
                }
              }
            ],
            "rules": [
              {
                "type": "reference_map",
                "field": "account",
                "reference_map": "role_department_code",
                "match_type": "prefix"
              }
            ],
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "finance"
                },
                {
                  "access_level": "full_access",
                  "role_name": "hr"
                },
                {
                  "access_level": "full_access",
                  "role_name": "marketing"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Fiscal year\",\n      \"format\": \"allowed_values:2026\",\n      \"name\": \"fiscal_year\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Department (must align with role map)\",\n      \"name\": \"department_name\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Account code\",\n      \"name\": \"account\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Request amount\",\n      \"name\": \"request\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Narrative\",\n      \"name\": \"narrative\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"append\",\n    \"description\": \"Budget requests \\u2014 role-scoped accounts (reference_map) + department filename prefix\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_multi_role\": true,\n    \"is_published\": false,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Budget requests (role-scoped)\",\n    \"spec_name\": \"budget_requests\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": true,\n        \"description\": \"Draft budget lines\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": true,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted request\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Finance / planning recommendation\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Recommended\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Final approval \\u2014 locked\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Recommended\",\n        \"require_comment\": true,\n        \"step_name\": \"Approved\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"file_type\": \"excel\",\n      \"worksheet_name\": \"Budget Request\",\n      \"worksheet_selection\": \"by_name\"\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": true,\n      \"filename_pattern\": \"^{reference_map:role_department}_.*$\",\n      \"sample_filenames\": \"finance_budget_submission_2026, human_resources_budget_submission_2026, marketing_budget_submission_2026\"\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"finance\"\n      },\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"hr\"\n      },\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"marketing\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"reference_maps\": [\n    {\n      \"mapping\": {\n        \"finance\": \"finance\",\n        \"hr\": \"human_resources\",\n        \"marketing\": \"marketing\"\n      },\n      \"name\": \"role_department\"\n    },\n    {\n      \"mapping\": {\n        \"finance\": \"133\",\n        \"hr\": \"220\",\n        \"marketing\": \"310\"\n      },\n      \"name\": \"role_department_code\"\n    }\n  ],\n  \"rules\": [\n    {\n      \"field\": \"account\",\n      \"match_type\": \"prefix\",\n      \"reference_map\": \"role_department_code\",\n      \"type\": \"reference_map\"\n    }\n  ],\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));"
        }
      ],
      "createSpecSourceLinks": [
        {
          "downstream_spec_name": "timesheet_lines",
          "source_spec_name": "projects",
          "link_options": null
        },
        {
          "downstream_spec_name": "invoice_lines",
          "source_spec_name": "projects",
          "link_options": null
        }
      ],
      "createExpectations": [
        {
          "expectation_name": "demo_weekly_timesheet_delivery",
          "spec_name": "timesheet_lines",
          "description": "Weekly delivery expectation for timesheet lines: files should reach the Submitted milestone by the rolling weekly cutoff (schedule operator due_weekly). Advisory by default.",
          "status": "active",
          "enforcement_mode": "advisory",
          "target_milestone": "Submitted",
          "logic": "all",
          "clauses": [
            {
              "type": "schedule",
              "label": "weekly_timesheet_cutoff",
              "operator": "due_weekly",
              "weekday": "friday",
              "time": "17:00",
              "timezone": "America/New_York"
            }
          ],
          "applies_to": {}
        }
      ]
    },
    {
      "id": "commerce_operations_intelligence_suite",
      "type": "collection",
      "domains": [
        "commerce",
        "finance"
      ],
      "version": "1.3.1",
      "summary": "Mixed commerce operations collection: Shopify and other system observations, commerce reconciliation findings, governed Shopify change proposals, and Bill.com reimbursement operations.",
      "includes": [
        "department_account_map",
        "shopify_api_products",
        "shopify_api_orders",
        "flexport_landed_costs",
        "inventory_levels",
        "ad_spend",
        "subscription_events",
        "sku_catalog_reconciliation",
        "shipping_margin_reconciliation",
        "bundle_profitability_reconciliation",
        "shopify_agent_api_price_changes",
        "shopify_agent_api_catalog_updates",
        "bill_com_employee_reimbursements"
      ],
      "needs": [
        "commerce_agent_role.",
        "Default role names are finance, operations, warehouse, and marketing."
      ],
      "usefulFor": [
        "AI-assisted ecommerce operations across product catalog, orders, costs, inventory, marketing, subscriptions, reimbursements, and payment confirmations"
      ],
      "seeds": [
        "Demo CSVs under scopes such as shopify_api, shopify_agent_api, bill_com_api, employee_directory, and reconciliation."
      ],
      "links": [
        {
          "from": "shopify_agent_api_price_changes",
          "to": "sku_catalog_reconciliation",
          "kind": "source_link",
          "description": "Price-change proposals cite upstream reconciliation findings."
        },
        {
          "from": "shopify_agent_api_catalog_updates",
          "to": "shopify_api_products",
          "kind": "source_link",
          "description": "Catalog-update proposals cite observed Shopify product data."
        },
        {
          "from": "bill_com_employee_reimbursements",
          "to": "commerce_operations_intelligence_suite",
          "kind": "child_collection",
          "description": "Employee reimbursements are included as the finance operations collection."
        }
      ],
      "installedSpecs": [
        {
          "id": "department_account_map",
          "domain": "Reference / access lens",
          "purpose": "Role-filtered department/account map for caller-scoped reference reads."
        },
        {
          "id": "shopify_api_products",
          "domain": "Observation",
          "purpose": "Product and variant catalog observations.",
          "systems": [
            "shopify"
          ]
        },
        {
          "id": "shopify_api_orders",
          "domain": "Observation",
          "purpose": "Order observations with line-item, shipping, discount, fulfillment, region, and date fields.",
          "systems": [
            "shopify"
          ]
        },
        {
          "id": "flexport_landed_costs",
          "domain": "Observation",
          "purpose": "SKU-level freight, customs, landed cost, carrier, destination, and shipment state.",
          "systems": [
            "flexport"
          ]
        },
        {
          "id": "inventory_levels",
          "domain": "Observation",
          "purpose": "Inventory quantities by SKU/location."
        },
        {
          "id": "ad_spend",
          "domain": "Observation",
          "purpose": "Campaign spend, channel, CAC, attributed revenue, and region.",
          "systems": [
            "ad_platforms"
          ]
        },
        {
          "id": "subscription_events",
          "domain": "Observation",
          "purpose": "Subscription lifecycle events and churn/payment signals.",
          "systems": [
            "subscription_platforms"
          ]
        },
        {
          "id": "sku_catalog_reconciliation",
          "domain": "Reconciliation",
          "purpose": "Catalog drift findings.",
          "systems": [
            "commerce_reconciliation"
          ],
          "relatedSystems": [
            "shopify"
          ]
        },
        {
          "id": "shipping_margin_reconciliation",
          "domain": "Reconciliation",
          "purpose": "Shipping and margin findings.",
          "systems": [
            "commerce_reconciliation"
          ],
          "relatedSystems": [
            "shopify",
            "flexport"
          ]
        },
        {
          "id": "bundle_profitability_reconciliation",
          "domain": "Reconciliation",
          "purpose": "Bundle profitability findings.",
          "systems": [
            "commerce_reconciliation"
          ],
          "relatedSystems": [
            "shopify",
            "flexport"
          ]
        },
        {
          "id": "shopify_agent_api_price_changes",
          "domain": "Commitment workflow",
          "purpose": "Agent-proposed variant price changes before outbound Shopify API sync.",
          "systems": [
            "shopify"
          ]
        },
        {
          "id": "shopify_agent_api_catalog_updates",
          "domain": "Commitment workflow",
          "purpose": "Agent-proposed product or variant catalog updates before outbound Shopify API sync.",
          "systems": [
            "shopify"
          ]
        },
        {
          "id": "bill_com_employee_reimbursements",
          "domain": "Child collection",
          "purpose": "Employee reimbursements, Bill.com commitments, confirmations, and reconciliation.",
          "systems": [
            "bill_com"
          ]
        }
      ],
      "searchTerms": [
        "commerce",
        "shopify",
        "flexport",
        "bill.com",
        "bill com",
        "inventory",
        "ad spend",
        "subscriptions",
        "landed costs",
        "reconciliation",
        "catalog",
        "shipping margin",
        "bundle profitability",
        "price changes",
        "catalog updates",
        "employee reimbursements",
        "source links",
        "workflow dependencies"
      ],
      "createSpecPayloads": [
        {
          "specName": "employee_info",
          "specConfig": {
            "column_config": [
              {
                "description": "employee username",
                "name": "employee_username",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "employee name",
                "name": "employee_name",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "work email",
                "name": "work_email",
                "tests": [],
                "type": "string"
              },
              {
                "description": "manager username",
                "name": "manager_username",
                "tests": [],
                "type": "string"
              },
              {
                "description": "department",
                "name": "department",
                "tests": [],
                "type": "string"
              },
              {
                "description": "default reimbursement category",
                "name": "default_reimbursement_category",
                "tests": [],
                "type": "string"
              },
              {
                "description": "airlock status",
                "name": "airlock_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "bill com payee external id",
                "name": "bill_com_payee_external_id",
                "tests": [],
                "type": "string"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Canonical employee roster used by reimbursement agents when joining Airlock employee identity to Bill.com payee setup.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Employee info",
              "spec_name": "employee_info"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "file_type": "csv",
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "role_name": "bill_com_agent",
                  "access_level": "full_access"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"employee username\",\n      \"name\": \"employee_username\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"employee name\",\n      \"name\": \"employee_name\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"work email\",\n      \"name\": \"work_email\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"manager username\",\n      \"name\": \"manager_username\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"department\",\n      \"name\": \"department\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"default reimbursement category\",\n      \"name\": \"default_reimbursement_category\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"airlock status\",\n      \"name\": \"airlock_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"bill com payee external id\",\n      \"name\": \"bill_com_payee_external_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Canonical employee roster used by reimbursement agents when joining Airlock employee identity to Bill.com payee setup.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Employee info\",\n    \"spec_name\": \"employee_info\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"bill_com_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [],
          "relatedSystems": [
            "bill_com"
          ]
        },
        {
          "specName": "bill_com_api_employee_payees",
          "specConfig": {
            "column_config": [
              {
                "description": "bill com payee external id",
                "name": "bill_com_payee_external_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "display name",
                "name": "display_name",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "email",
                "name": "email",
                "tests": [],
                "type": "string"
              },
              {
                "description": "status",
                "name": "status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "default payment method",
                "name": "default_payment_method",
                "tests": [],
                "type": "string"
              },
              {
                "description": "remittance address",
                "name": "remittance_address",
                "tests": [],
                "type": "string"
              },
              {
                "description": "last pulled at",
                "name": "last_pulled_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "raw record hash",
                "name": "raw_record_hash",
                "tests": [],
                "type": "string"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Payee, vendor, or user setup observations pulled from Bill.com by an agent through the Bill.com API.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Bill.com API employee payees",
              "spec_name": "bill_com_api_employee_payees"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "file_type": "csv",
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "role_name": "bill_com_agent",
                  "access_level": "full_access"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"bill com payee external id\",\n      \"name\": \"bill_com_payee_external_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"display name\",\n      \"name\": \"display_name\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"email\",\n      \"name\": \"email\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"status\",\n      \"name\": \"status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"default payment method\",\n      \"name\": \"default_payment_method\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"remittance address\",\n      \"name\": \"remittance_address\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"last pulled at\",\n      \"name\": \"last_pulled_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"raw record hash\",\n      \"name\": \"raw_record_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Payee, vendor, or user setup observations pulled from Bill.com by an agent through the Bill.com API.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Bill.com API employee payees\",\n    \"spec_name\": \"bill_com_api_employee_payees\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"bill_com_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "bill_com"
          ],
          "relatedSystems": []
        },
        {
          "specName": "employee_reimbursements",
          "specConfig": {
            "column_config": [
              {
                "description": "reimbursement id",
                "name": "reimbursement_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "employee username",
                "name": "employee_username",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "manager username",
                "name": "manager_username",
                "tests": [],
                "type": "string"
              },
              {
                "description": "receipt date",
                "name": "receipt_date",
                "tests": [
                  "not_null"
                ],
                "type": "date",
                "format": "%Y-%m-%d"
              },
              {
                "description": "merchant",
                "name": "merchant",
                "tests": [],
                "type": "string"
              },
              {
                "description": "amount",
                "name": "amount",
                "tests": [
                  "not_null"
                ],
                "type": "number"
              },
              {
                "description": "currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "category",
                "name": "category",
                "tests": [],
                "type": "string"
              },
              {
                "description": "policy flag",
                "name": "policy_flag",
                "tests": [],
                "type": "string"
              },
              {
                "description": "extracted summary",
                "name": "extracted_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Flexible JSON context for agent/source details, receipt extraction, and policy signals",
                "name": "processing_context",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "approval status",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "approved by",
                "name": "approved_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "approved at",
                "name": "approved_at",
                "tests": [],
                "type": "string"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Employee reimbursement submissions with required receipt attachments and Draft -> Submitted -> Reviewed -> Approved workflow. An agent records a review separately before approval.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Employee reimbursements",
              "spec_name": "employee_reimbursements",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Reviewed",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Reviewed",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Approved",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Reviewed",
                  "require_comment": true,
                  "step_name": "Approved",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "file_type": "csv",
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "role_name": "bill_com_agent",
                  "access_level": "full_access"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            },
            "attachment_policy": {
              "attachments_enabled": true,
              "attachment_required": true,
              "max_attachment_count": 5,
              "default_attachment_tag_limit": 1,
              "allow_custom_attachment_tags": true,
              "allowed_extensions": [
                ".pdf",
                ".png",
                ".jpg",
                ".jpeg"
              ]
            },
            "rules": [
              {
                "type": "variant_shape",
                "field": "processing_context",
                "allowed_root_keys": [
                  "submission",
                  "receipt",
                  "policy"
                ],
                "paths": [
                  {
                    "json_path": "$.submission.channel",
                    "type": "string",
                    "required": true
                  },
                  {
                    "json_path": "$.receipt.total",
                    "type": "number",
                    "required": true
                  },
                  {
                    "json_path": "$.policy.requires_manager_review",
                    "type": "boolean",
                    "required": true
                  },
                  {
                    "json_path": "$.policy.reason",
                    "type": "string",
                    "required": false
                  }
                ]
              }
            ]
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"attachment_policy\": {\n    \"allow_custom_attachment_tags\": true,\n    \"allowed_extensions\": [\n      \".pdf\",\n      \".png\",\n      \".jpg\",\n      \".jpeg\"\n    ],\n    \"attachment_required\": true,\n    \"attachments_enabled\": true,\n    \"default_attachment_tag_limit\": 1,\n    \"max_attachment_count\": 5\n  },\n  \"column_config\": [\n    {\n      \"description\": \"reimbursement id\",\n      \"name\": \"reimbursement_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"employee username\",\n      \"name\": \"employee_username\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"manager username\",\n      \"name\": \"manager_username\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"receipt date\",\n      \"format\": \"%Y-%m-%d\",\n      \"name\": \"receipt_date\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"date\"\n    },\n    {\n      \"description\": \"merchant\",\n      \"name\": \"merchant\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"amount\",\n      \"name\": \"amount\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"category\",\n      \"name\": \"category\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"policy flag\",\n      \"name\": \"policy_flag\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"extracted summary\",\n      \"name\": \"extracted_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Flexible JSON context for agent/source details, receipt extraction, and policy signals\",\n      \"name\": \"processing_context\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"approval status\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"approved by\",\n      \"name\": \"approved_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"approved at\",\n      \"name\": \"approved_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Employee reimbursement submissions with required receipt attachments and Draft -> Submitted -> Reviewed -> Approved workflow. An agent records a review separately before approval.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Employee reimbursements\",\n    \"spec_name\": \"employee_reimbursements\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Reviewed\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Reviewed\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Approved\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Reviewed\",\n        \"require_comment\": true,\n        \"step_name\": \"Approved\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"bill_com_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"rules\": [\n    {\n      \"allowed_root_keys\": [\n        \"submission\",\n        \"receipt\",\n        \"policy\"\n      ],\n      \"field\": \"processing_context\",\n      \"paths\": [\n        {\n          \"json_path\": \"$.submission.channel\",\n          \"required\": true,\n          \"type\": \"string\"\n        },\n        {\n          \"json_path\": \"$.receipt.total\",\n          \"required\": true,\n          \"type\": \"number\"\n        },\n        {\n          \"json_path\": \"$.policy.requires_manager_review\",\n          \"required\": true,\n          \"type\": \"boolean\"\n        },\n        {\n          \"json_path\": \"$.policy.reason\",\n          \"required\": false,\n          \"type\": \"string\"\n        }\n      ],\n      \"type\": \"variant_shape\"\n    }\n  ],\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [],
          "relatedSystems": [
            "bill_com"
          ]
        },
        {
          "specName": "employee_reimbursement_reviews",
          "specConfig": {
            "column_config": [
              {
                "description": "review id",
                "name": "review_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "reviewed at",
                "name": "reviewed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "reviewed by agent",
                "name": "reviewed_by_agent",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "reimbursement spec name",
                "name": "reimbursement_spec_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "reimbursement path",
                "name": "reimbursement_path",
                "tests": [],
                "type": "string"
              },
              {
                "description": "reimbursement filename",
                "name": "reimbursement_filename",
                "tests": [],
                "type": "string"
              },
              {
                "description": "reimbursement id",
                "name": "reimbursement_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "employee username",
                "name": "employee_username",
                "tests": [],
                "type": "string"
              },
              {
                "description": "review status",
                "name": "review_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "receipt check result",
                "name": "receipt_check_result",
                "tests": [],
                "type": "string"
              },
              {
                "description": "policy check result",
                "name": "policy_check_result",
                "tests": [],
                "type": "string"
              },
              {
                "description": "duplicate check result",
                "name": "duplicate_check_result",
                "tests": [],
                "type": "string"
              },
              {
                "description": "employee setup check result",
                "name": "employee_setup_check_result",
                "tests": [],
                "type": "string"
              },
              {
                "description": "bill com setup check result",
                "name": "bill_com_setup_check_result",
                "tests": [],
                "type": "string"
              },
              {
                "description": "recommended manager action",
                "name": "recommended_manager_action",
                "tests": [],
                "type": "string"
              },
              {
                "description": "review summary",
                "name": "review_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "bill com update ids",
                "name": "bill_com_update_ids",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Structured check outcomes recorded by the review agent.",
                "name": "check_results",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Flexible review evidence such as extracted receipt, policy, duplicate, and setup context.",
                "name": "review_evidence",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Timestamped agent review records for submitted reimbursements. These records soft-reference the reimbursement file path and reimbursement id without creating a hard source link, so the submitted file can be deleted later without breaking review history.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Employee reimbursement reviews",
              "spec_name": "employee_reimbursement_reviews"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "file_type": "csv",
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "role_name": "bill_com_agent",
                  "access_level": "full_access"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            },
            "rules": [
              {
                "type": "variant_shape",
                "field": "check_results",
                "paths": [
                  {
                    "json_path": "$.checks",
                    "type": "array",
                    "required": true
                  },
                  {
                    "json_path": "$.recommended_update_ids",
                    "type": "array",
                    "required": false
                  }
                ],
                "allowed_root_keys": [
                  "checks",
                  "recommended_update_ids"
                ]
              },
              {
                "type": "variant_shape",
                "field": "review_evidence",
                "paths": [
                  {
                    "json_path": "$.employee.username",
                    "type": "string",
                    "required": true
                  },
                  {
                    "json_path": "$.receipt.amount",
                    "type": "number",
                    "required": true
                  },
                  {
                    "json_path": "$.duplicate_candidates",
                    "type": "array",
                    "required": true
                  },
                  {
                    "json_path": "$.policy_context.manager_context_required",
                    "type": "boolean",
                    "required": true
                  },
                  {
                    "json_path": "$.bill_com.payee_external_id",
                    "type": "string",
                    "required": false
                  }
                ],
                "allowed_root_keys": [
                  "employee",
                  "receipt",
                  "duplicate_candidates",
                  "policy_context",
                  "bill_com"
                ]
              }
            ]
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"review id\",\n      \"name\": \"review_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"reviewed at\",\n      \"name\": \"reviewed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"reviewed by agent\",\n      \"name\": \"reviewed_by_agent\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"reimbursement spec name\",\n      \"name\": \"reimbursement_spec_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"reimbursement path\",\n      \"name\": \"reimbursement_path\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"reimbursement filename\",\n      \"name\": \"reimbursement_filename\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"reimbursement id\",\n      \"name\": \"reimbursement_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"employee username\",\n      \"name\": \"employee_username\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"review status\",\n      \"name\": \"review_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"receipt check result\",\n      \"name\": \"receipt_check_result\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"policy check result\",\n      \"name\": \"policy_check_result\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"duplicate check result\",\n      \"name\": \"duplicate_check_result\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"employee setup check result\",\n      \"name\": \"employee_setup_check_result\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"bill com setup check result\",\n      \"name\": \"bill_com_setup_check_result\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"recommended manager action\",\n      \"name\": \"recommended_manager_action\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"review summary\",\n      \"name\": \"review_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"bill com update ids\",\n      \"name\": \"bill_com_update_ids\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Structured check outcomes recorded by the review agent.\",\n      \"name\": \"check_results\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Flexible review evidence such as extracted receipt, policy, duplicate, and setup context.\",\n      \"name\": \"review_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Timestamped agent review records for submitted reimbursements. These records soft-reference the reimbursement file path and reimbursement id without creating a hard source link, so the submitted file can be deleted later without breaking review history.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Employee reimbursement reviews\",\n    \"spec_name\": \"employee_reimbursement_reviews\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"bill_com_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"rules\": [\n    {\n      \"allowed_root_keys\": [\n        \"checks\",\n        \"recommended_update_ids\"\n      ],\n      \"field\": \"check_results\",\n      \"paths\": [\n        {\n          \"json_path\": \"$.checks\",\n          \"required\": true,\n          \"type\": \"array\"\n        },\n        {\n          \"json_path\": \"$.recommended_update_ids\",\n          \"required\": false,\n          \"type\": \"array\"\n        }\n      ],\n      \"type\": \"variant_shape\"\n    },\n    {\n      \"allowed_root_keys\": [\n        \"employee\",\n        \"receipt\",\n        \"duplicate_candidates\",\n        \"policy_context\",\n        \"bill_com\"\n      ],\n      \"field\": \"review_evidence\",\n      \"paths\": [\n        {\n          \"json_path\": \"$.employee.username\",\n          \"required\": true,\n          \"type\": \"string\"\n        },\n        {\n          \"json_path\": \"$.receipt.amount\",\n          \"required\": true,\n          \"type\": \"number\"\n        },\n        {\n          \"json_path\": \"$.duplicate_candidates\",\n          \"required\": true,\n          \"type\": \"array\"\n        },\n        {\n          \"json_path\": \"$.policy_context.manager_context_required\",\n          \"required\": true,\n          \"type\": \"boolean\"\n        },\n        {\n          \"json_path\": \"$.bill_com.payee_external_id\",\n          \"required\": false,\n          \"type\": \"string\"\n        }\n      ],\n      \"type\": \"variant_shape\"\n    }\n  ],\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [],
          "relatedSystems": [
            "bill_com"
          ]
        },
        {
          "specName": "ops_issues",
          "specConfig": {
            "column_config": [
              {
                "description": "issue id",
                "name": "issue_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "opened at",
                "name": "opened_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "opened by actor",
                "name": "opened_by_actor",
                "tests": [],
                "type": "string"
              },
              {
                "description": "source process",
                "name": "source_process",
                "tests": [],
                "type": "string"
              },
              {
                "description": "source spec name",
                "name": "source_spec_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "source path",
                "name": "source_path",
                "tests": [],
                "type": "string"
              },
              {
                "description": "source filename",
                "name": "source_filename",
                "tests": [],
                "type": "string"
              },
              {
                "description": "source record id",
                "name": "source_record_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "related spec name",
                "name": "related_spec_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "related record id",
                "name": "related_record_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "issue type",
                "name": "issue_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "severity",
                "name": "severity",
                "tests": [],
                "type": "string"
              },
              {
                "description": "status",
                "name": "status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "owner role",
                "name": "owner_role",
                "tests": [],
                "type": "string"
              },
              {
                "description": "assignee",
                "name": "assignee",
                "tests": [],
                "type": "string"
              },
              {
                "description": "concern summary",
                "name": "concern_summary",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "recommended action",
                "name": "recommended_action",
                "tests": [],
                "type": "string"
              },
              {
                "description": "resolution summary",
                "name": "resolution_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "resolved at",
                "name": "resolved_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Issue-specific categorization and structured details that may evolve over time.",
                "name": "issue_details",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Flexible evidence captured by the agent or reconciliation process.",
                "name": "evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "One or more proposed operational actions or targets.",
                "name": "suggested_actions",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Flexible operational issue register for concerns discovered during agent review or reconciliation. Rows soft-reference the source work and can later be standardized into specialized issue types.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Ops issues",
              "spec_name": "ops_issues"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "file_type": "csv",
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "role_name": "bill_com_agent",
                  "access_level": "full_access"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            },
            "rules": [
              {
                "type": "variant_shape",
                "field": "issue_details",
                "paths": [
                  {
                    "json_path": "$.category",
                    "type": "string",
                    "required": true
                  },
                  {
                    "json_path": "$.problem_code",
                    "type": "string",
                    "required": true
                  },
                  {
                    "json_path": "$.standardization_status",
                    "type": "string",
                    "required": false
                  }
                ],
                "allowed_root_keys": [
                  "category",
                  "problem_code",
                  "standardization_status"
                ]
              },
              {
                "type": "variant_shape",
                "field": "evidence",
                "paths": [
                  {
                    "json_path": "$.employee.username",
                    "type": "string",
                    "required": true
                  },
                  {
                    "json_path": "$.bill_com.payee_external_id",
                    "type": "string",
                    "required": false
                  },
                  {
                    "json_path": "$.review.review_id",
                    "type": "string",
                    "required": false
                  }
                ],
                "allowed_root_keys": [
                  "employee",
                  "bill_com",
                  "review"
                ]
              },
              {
                "type": "variant_shape",
                "field": "suggested_actions",
                "paths": [
                  {
                    "json_path": "$[0].action",
                    "type": "string",
                    "required": true
                  },
                  {
                    "json_path": "$[0].target_spec",
                    "type": "string",
                    "required": true
                  },
                  {
                    "json_path": "$[0].target_record_id",
                    "type": "string",
                    "required": false
                  }
                ],
                "require_object": false
              }
            ]
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"issue id\",\n      \"name\": \"issue_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"opened at\",\n      \"name\": \"opened_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"opened by actor\",\n      \"name\": \"opened_by_actor\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"source process\",\n      \"name\": \"source_process\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"source spec name\",\n      \"name\": \"source_spec_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"source path\",\n      \"name\": \"source_path\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"source filename\",\n      \"name\": \"source_filename\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"source record id\",\n      \"name\": \"source_record_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"related spec name\",\n      \"name\": \"related_spec_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"related record id\",\n      \"name\": \"related_record_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"issue type\",\n      \"name\": \"issue_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"severity\",\n      \"name\": \"severity\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"status\",\n      \"name\": \"status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"owner role\",\n      \"name\": \"owner_role\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"assignee\",\n      \"name\": \"assignee\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"concern summary\",\n      \"name\": \"concern_summary\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"recommended action\",\n      \"name\": \"recommended_action\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"resolution summary\",\n      \"name\": \"resolution_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"resolved at\",\n      \"name\": \"resolved_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Issue-specific categorization and structured details that may evolve over time.\",\n      \"name\": \"issue_details\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Flexible evidence captured by the agent or reconciliation process.\",\n      \"name\": \"evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"One or more proposed operational actions or targets.\",\n      \"name\": \"suggested_actions\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Flexible operational issue register for concerns discovered during agent review or reconciliation. Rows soft-reference the source work and can later be standardized into specialized issue types.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Ops issues\",\n    \"spec_name\": \"ops_issues\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"bill_com_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"rules\": [\n    {\n      \"allowed_root_keys\": [\n        \"category\",\n        \"problem_code\",\n        \"standardization_status\"\n      ],\n      \"field\": \"issue_details\",\n      \"paths\": [\n        {\n          \"json_path\": \"$.category\",\n          \"required\": true,\n          \"type\": \"string\"\n        },\n        {\n          \"json_path\": \"$.problem_code\",\n          \"required\": true,\n          \"type\": \"string\"\n        },\n        {\n          \"json_path\": \"$.standardization_status\",\n          \"required\": false,\n          \"type\": \"string\"\n        }\n      ],\n      \"type\": \"variant_shape\"\n    },\n    {\n      \"allowed_root_keys\": [\n        \"employee\",\n        \"bill_com\",\n        \"review\"\n      ],\n      \"field\": \"evidence\",\n      \"paths\": [\n        {\n          \"json_path\": \"$.employee.username\",\n          \"required\": true,\n          \"type\": \"string\"\n        },\n        {\n          \"json_path\": \"$.bill_com.payee_external_id\",\n          \"required\": false,\n          \"type\": \"string\"\n        },\n        {\n          \"json_path\": \"$.review.review_id\",\n          \"required\": false,\n          \"type\": \"string\"\n        }\n      ],\n      \"type\": \"variant_shape\"\n    },\n    {\n      \"field\": \"suggested_actions\",\n      \"paths\": [\n        {\n          \"json_path\": \"$[0].action\",\n          \"required\": true,\n          \"type\": \"string\"\n        },\n        {\n          \"json_path\": \"$[0].target_spec\",\n          \"required\": true,\n          \"type\": \"string\"\n        },\n        {\n          \"json_path\": \"$[0].target_record_id\",\n          \"required\": false,\n          \"type\": \"string\"\n        }\n      ],\n      \"require_object\": false,\n      \"type\": \"variant_shape\"\n    }\n  ],\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [],
          "relatedSystems": [
            "bill_com"
          ]
        },
        {
          "specName": "bill_com_updates",
          "specConfig": {
            "column_config": [
              {
                "description": "update id",
                "name": "update_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "detected at",
                "name": "detected_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "employee username",
                "name": "employee_username",
                "tests": [],
                "type": "string"
              },
              {
                "description": "bill com payee external id",
                "name": "bill_com_payee_external_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "update type",
                "name": "update_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "airlock value",
                "name": "airlock_value",
                "tests": [],
                "type": "string"
              },
              {
                "description": "bill com value",
                "name": "bill_com_value",
                "tests": [],
                "type": "string"
              },
              {
                "description": "proposed value",
                "name": "proposed_value",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "reconciliation problem",
                "name": "reconciliation_problem",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "recommended action",
                "name": "recommended_action",
                "tests": [],
                "type": "string"
              },
              {
                "description": "source employee info id",
                "name": "source_employee_info_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "source bill com record id",
                "name": "source_bill_com_record_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "decision status",
                "name": "decision_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "approved by",
                "name": "approved_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "approved at",
                "name": "approved_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Structured reconciliation context behind the proposed Bill.com setup update.",
                "name": "update_details",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Agent-proposed Bill.com setup edits from reconciliation between employee_info and Bill.com API payee observations.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Bill.com updates",
              "spec_name": "bill_com_updates",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Draft",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Approved",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Approved",
                  "step_order": 3,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "file_type": "csv",
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "role_name": "bill_com_agent",
                  "access_level": "full_access"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            },
            "rules": [
              {
                "type": "variant_shape",
                "field": "update_details",
                "paths": [
                  {
                    "json_path": "$.employee.username",
                    "type": "string",
                    "required": true
                  },
                  {
                    "json_path": "$.field",
                    "type": "string",
                    "required": true
                  },
                  {
                    "json_path": "$.proposed_bill_com_value",
                    "type": "string",
                    "required": true
                  },
                  {
                    "json_path": "$.source_review_id",
                    "type": "string",
                    "required": false
                  }
                ],
                "allowed_root_keys": [
                  "employee",
                  "field",
                  "current_airlock_value",
                  "current_bill_com_value",
                  "proposed_bill_com_value",
                  "source_review_id"
                ]
              }
            ]
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"update id\",\n      \"name\": \"update_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"detected at\",\n      \"name\": \"detected_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"employee username\",\n      \"name\": \"employee_username\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"bill com payee external id\",\n      \"name\": \"bill_com_payee_external_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"update type\",\n      \"name\": \"update_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"airlock value\",\n      \"name\": \"airlock_value\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"bill com value\",\n      \"name\": \"bill_com_value\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"proposed value\",\n      \"name\": \"proposed_value\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"reconciliation problem\",\n      \"name\": \"reconciliation_problem\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"recommended action\",\n      \"name\": \"recommended_action\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"source employee info id\",\n      \"name\": \"source_employee_info_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"source bill com record id\",\n      \"name\": \"source_bill_com_record_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"decision status\",\n      \"name\": \"decision_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"approved by\",\n      \"name\": \"approved_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"approved at\",\n      \"name\": \"approved_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Structured reconciliation context behind the proposed Bill.com setup update.\",\n      \"name\": \"update_details\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Agent-proposed Bill.com setup edits from reconciliation between employee_info and Bill.com API payee observations.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Bill.com updates\",\n    \"spec_name\": \"bill_com_updates\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Approved\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Approved\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"bill_com_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"rules\": [\n    {\n      \"allowed_root_keys\": [\n        \"employee\",\n        \"field\",\n        \"current_airlock_value\",\n        \"current_bill_com_value\",\n        \"proposed_bill_com_value\",\n        \"source_review_id\"\n      ],\n      \"field\": \"update_details\",\n      \"paths\": [\n        {\n          \"json_path\": \"$.employee.username\",\n          \"required\": true,\n          \"type\": \"string\"\n        },\n        {\n          \"json_path\": \"$.field\",\n          \"required\": true,\n          \"type\": \"string\"\n        },\n        {\n          \"json_path\": \"$.proposed_bill_com_value\",\n          \"required\": true,\n          \"type\": \"string\"\n        },\n        {\n          \"json_path\": \"$.source_review_id\",\n          \"required\": false,\n          \"type\": \"string\"\n        }\n      ],\n      \"type\": \"variant_shape\"\n    }\n  ],\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "bill_com"
          ],
          "relatedSystems": []
        },
        {
          "specName": "employee_reimbursement_commitment",
          "specConfig": {
            "column_config": [
              {
                "description": "batch id",
                "name": "batch_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "prepared at",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "prepared by",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "reimbursement ids",
                "name": "reimbursement_ids",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "employee usernames",
                "name": "employee_usernames",
                "tests": [],
                "type": "string"
              },
              {
                "description": "payee external ids",
                "name": "payee_external_ids",
                "tests": [],
                "type": "string"
              },
              {
                "description": "employee count",
                "name": "employee_count",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "total amount",
                "name": "total_amount",
                "tests": [
                  "not_null"
                ],
                "type": "number"
              },
              {
                "description": "currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "api operation",
                "name": "api_operation",
                "tests": [],
                "type": "string"
              },
              {
                "description": "process date",
                "name": "process_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "funding account type",
                "name": "funding_account_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "funding account id",
                "name": "funding_account_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "bill ids",
                "name": "bill_ids",
                "tests": [],
                "type": "string"
              },
              {
                "description": "payment amounts by bill",
                "name": "payment_amounts_by_bill",
                "tests": [],
                "type": "string"
              },
              {
                "description": "api payload hash",
                "name": "api_payload_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "commitment status",
                "name": "commitment_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Structured list of approved reimbursements gathered into this commitment.",
                "name": "selected_reimbursements",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Bill.com API payload prepared by the agent for the outbound payment commitment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "One row per gathered outbound payment packet (not per reimbursement line). Rows are built from Approved employee_reimbursements files (governed by spec_source_links), then enriched with employee-directory fields: employee_usernames mirror Airlock/Snowflake identities from the requests; payee_external_ids hold provider-side ids (e.g. BILL userUuid or vendorId) resolved by joining to an employee roster—often different from the Snowflake username. Bill line / payment metadata (billIds, amounts, processDate, fundingAccount) aligns with BILL POST /v3/payments*; real calls still require MFA-trusted sessions and ids from the vendor system.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Employee reimbursement commitment",
              "spec_name": "employee_reimbursement_commitment",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Prepared",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Prepared",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Prepared",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 3,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "file_type": "csv",
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "role_name": "bill_com_agent",
                  "access_level": "full_access"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            },
            "rules": [
              {
                "type": "variant_shape",
                "field": "selected_reimbursements",
                "paths": [
                  {
                    "json_path": "$[0].reimbursement_id",
                    "type": "string",
                    "required": true
                  },
                  {
                    "json_path": "$[0].employee_username",
                    "type": "string",
                    "required": true
                  },
                  {
                    "json_path": "$[0].amount",
                    "type": "number",
                    "required": true
                  },
                  {
                    "json_path": "$[0].currency",
                    "type": "string",
                    "required": true
                  }
                ],
                "require_object": false
              },
              {
                "type": "variant_shape",
                "field": "api_payload",
                "paths": [
                  {
                    "json_path": "$.operation",
                    "type": "string",
                    "required": true
                  },
                  {
                    "json_path": "$.fundingAccount.id",
                    "type": "string",
                    "required": true
                  },
                  {
                    "json_path": "$.payments",
                    "type": "array",
                    "required": true
                  }
                ],
                "allowed_root_keys": [
                  "operation",
                  "processDate",
                  "fundingAccount",
                  "payments"
                ]
              }
            ]
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"batch id\",\n      \"name\": \"batch_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"prepared at\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"prepared by\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"reimbursement ids\",\n      \"name\": \"reimbursement_ids\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"employee usernames\",\n      \"name\": \"employee_usernames\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"payee external ids\",\n      \"name\": \"payee_external_ids\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"employee count\",\n      \"name\": \"employee_count\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"total amount\",\n      \"name\": \"total_amount\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"api operation\",\n      \"name\": \"api_operation\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"process date\",\n      \"name\": \"process_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"funding account type\",\n      \"name\": \"funding_account_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"funding account id\",\n      \"name\": \"funding_account_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"bill ids\",\n      \"name\": \"bill_ids\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"payment amounts by bill\",\n      \"name\": \"payment_amounts_by_bill\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"api payload hash\",\n      \"name\": \"api_payload_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"commitment status\",\n      \"name\": \"commitment_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Structured list of approved reimbursements gathered into this commitment.\",\n      \"name\": \"selected_reimbursements\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Bill.com API payload prepared by the agent for the outbound payment commitment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"One row per gathered outbound payment packet (not per reimbursement line). Rows are built from Approved employee_reimbursements files (governed by spec_source_links), then enriched with employee-directory fields: employee_usernames mirror Airlock/Snowflake identities from the requests; payee_external_ids hold provider-side ids (e.g. BILL userUuid or vendorId) resolved by joining to an employee roster\\u2014often different from the Snowflake username. Bill line / payment metadata (billIds, amounts, processDate, fundingAccount) aligns with BILL POST /v3/payments*; real calls still require MFA-trusted sessions and ids from the vendor system.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Employee reimbursement commitment\",\n    \"spec_name\": \"employee_reimbursement_commitment\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Prepared\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Prepared\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Prepared\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"bill_com_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"rules\": [\n    {\n      \"field\": \"selected_reimbursements\",\n      \"paths\": [\n        {\n          \"json_path\": \"$[0].reimbursement_id\",\n          \"required\": true,\n          \"type\": \"string\"\n        },\n        {\n          \"json_path\": \"$[0].employee_username\",\n          \"required\": true,\n          \"type\": \"string\"\n        },\n        {\n          \"json_path\": \"$[0].amount\",\n          \"required\": true,\n          \"type\": \"number\"\n        },\n        {\n          \"json_path\": \"$[0].currency\",\n          \"required\": true,\n          \"type\": \"string\"\n        }\n      ],\n      \"require_object\": false,\n      \"type\": \"variant_shape\"\n    },\n    {\n      \"allowed_root_keys\": [\n        \"operation\",\n        \"processDate\",\n        \"fundingAccount\",\n        \"payments\"\n      ],\n      \"field\": \"api_payload\",\n      \"paths\": [\n        {\n          \"json_path\": \"$.operation\",\n          \"required\": true,\n          \"type\": \"string\"\n        },\n        {\n          \"json_path\": \"$.fundingAccount.id\",\n          \"required\": true,\n          \"type\": \"string\"\n        },\n        {\n          \"json_path\": \"$.payments\",\n          \"required\": true,\n          \"type\": \"array\"\n        }\n      ],\n      \"type\": \"variant_shape\"\n    }\n  ],\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "bill_com"
          ],
          "relatedSystems": []
        },
        {
          "specName": "bill_com_api_payment_confirmations",
          "specConfig": {
            "column_config": [
              {
                "description": "confirmation id",
                "name": "confirmation_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "batch id",
                "name": "batch_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "bill com payment id",
                "name": "bill_com_payment_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "confirmed at",
                "name": "confirmed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "status",
                "name": "status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "total amount",
                "name": "total_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "raw event id",
                "name": "raw_event_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Raw or normalized Bill.com webhook/polling response retained for audit.",
                "name": "provider_response",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Payment confirmation observations received from Bill.com webhook or polling after reimbursement commitments are sent.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Bill.com API payment confirmations",
              "spec_name": "bill_com_api_payment_confirmations"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "file_type": "csv",
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "role_name": "bill_com_agent",
                  "access_level": "full_access"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            },
            "rules": [
              {
                "type": "variant_shape",
                "field": "provider_response",
                "paths": [
                  {
                    "json_path": "$.eventId",
                    "type": "string",
                    "required": true
                  },
                  {
                    "json_path": "$.paymentId",
                    "type": "string",
                    "required": true
                  },
                  {
                    "json_path": "$.status",
                    "type": "string",
                    "required": true
                  },
                  {
                    "json_path": "$.amount",
                    "type": "number",
                    "required": true
                  },
                  {
                    "json_path": "$.currency",
                    "type": "string",
                    "required": true
                  }
                ],
                "allowed_root_keys": [
                  "eventId",
                  "paymentId",
                  "status",
                  "amount",
                  "currency",
                  "batchId"
                ]
              }
            ]
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"confirmation id\",\n      \"name\": \"confirmation_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"batch id\",\n      \"name\": \"batch_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"bill com payment id\",\n      \"name\": \"bill_com_payment_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"confirmed at\",\n      \"name\": \"confirmed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"status\",\n      \"name\": \"status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"total amount\",\n      \"name\": \"total_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"raw event id\",\n      \"name\": \"raw_event_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Raw or normalized Bill.com webhook/polling response retained for audit.\",\n      \"name\": \"provider_response\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Payment confirmation observations received from Bill.com webhook or polling after reimbursement commitments are sent.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Bill.com API payment confirmations\",\n    \"spec_name\": \"bill_com_api_payment_confirmations\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"bill_com_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"rules\": [\n    {\n      \"allowed_root_keys\": [\n        \"eventId\",\n        \"paymentId\",\n        \"status\",\n        \"amount\",\n        \"currency\",\n        \"batchId\"\n      ],\n      \"field\": \"provider_response\",\n      \"paths\": [\n        {\n          \"json_path\": \"$.eventId\",\n          \"required\": true,\n          \"type\": \"string\"\n        },\n        {\n          \"json_path\": \"$.paymentId\",\n          \"required\": true,\n          \"type\": \"string\"\n        },\n        {\n          \"json_path\": \"$.status\",\n          \"required\": true,\n          \"type\": \"string\"\n        },\n        {\n          \"json_path\": \"$.amount\",\n          \"required\": true,\n          \"type\": \"number\"\n        },\n        {\n          \"json_path\": \"$.currency\",\n          \"required\": true,\n          \"type\": \"string\"\n        }\n      ],\n      \"type\": \"variant_shape\"\n    }\n  ],\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "bill_com"
          ],
          "relatedSystems": []
        },
        {
          "specName": "reimbursement_payment_reconciliation",
          "specConfig": {
            "column_config": [
              {
                "description": "reconciliation id",
                "name": "reconciliation_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "batch id",
                "name": "batch_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "confirmation id",
                "name": "confirmation_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "expected amount",
                "name": "expected_amount",
                "tests": [
                  "not_null"
                ],
                "type": "number"
              },
              {
                "description": "confirmed amount",
                "name": "confirmed_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "difference",
                "name": "difference",
                "tests": [],
                "type": "number"
              },
              {
                "description": "status",
                "name": "status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "finding",
                "name": "finding",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Structured matching details and comparison metadata.",
                "name": "reconciliation_details",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Reconciliation between employee reimbursement commitments sent to Bill.com and Bill.com payment confirmations.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Reimbursement payment reconciliation",
              "spec_name": "reimbursement_payment_reconciliation"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "file_type": "csv",
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "role_name": "bill_com_agent",
                  "access_level": "full_access"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            },
            "rules": [
              {
                "type": "variant_shape",
                "field": "reconciliation_details",
                "paths": [
                  {
                    "json_path": "$.matched_commitment_ids",
                    "type": "array",
                    "required": true
                  },
                  {
                    "json_path": "$.matched_confirmation_ids",
                    "type": "array",
                    "required": true
                  },
                  {
                    "json_path": "$.comparison.amount_delta",
                    "type": "number",
                    "required": true
                  },
                  {
                    "json_path": "$.comparison.currency_match",
                    "type": "boolean",
                    "required": true
                  }
                ],
                "allowed_root_keys": [
                  "matched_commitment_ids",
                  "matched_confirmation_ids",
                  "comparison"
                ]
              }
            ]
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"reconciliation id\",\n      \"name\": \"reconciliation_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"batch id\",\n      \"name\": \"batch_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"confirmation id\",\n      \"name\": \"confirmation_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"expected amount\",\n      \"name\": \"expected_amount\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"confirmed amount\",\n      \"name\": \"confirmed_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"difference\",\n      \"name\": \"difference\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"status\",\n      \"name\": \"status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"finding\",\n      \"name\": \"finding\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Structured matching details and comparison metadata.\",\n      \"name\": \"reconciliation_details\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Reconciliation between employee reimbursement commitments sent to Bill.com and Bill.com payment confirmations.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Reimbursement payment reconciliation\",\n    \"spec_name\": \"reimbursement_payment_reconciliation\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"bill_com_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"rules\": [\n    {\n      \"allowed_root_keys\": [\n        \"matched_commitment_ids\",\n        \"matched_confirmation_ids\",\n        \"comparison\"\n      ],\n      \"field\": \"reconciliation_details\",\n      \"paths\": [\n        {\n          \"json_path\": \"$.matched_commitment_ids\",\n          \"required\": true,\n          \"type\": \"array\"\n        },\n        {\n          \"json_path\": \"$.matched_confirmation_ids\",\n          \"required\": true,\n          \"type\": \"array\"\n        },\n        {\n          \"json_path\": \"$.comparison.amount_delta\",\n          \"required\": true,\n          \"type\": \"number\"\n        },\n        {\n          \"json_path\": \"$.comparison.currency_match\",\n          \"required\": true,\n          \"type\": \"boolean\"\n        }\n      ],\n      \"type\": \"variant_shape\"\n    }\n  ],\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [],
          "relatedSystems": [
            "bill_com"
          ]
        },
        {
          "specName": "department_account_map",
          "specConfig": {
            "column_config": [
              {
                "description": "department",
                "name": "department",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "account code",
                "name": "account_code",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "account name",
                "name": "account_name",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "spend category",
                "name": "spend_category",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Role-scoped department/account reference data for commerce operating decisions.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Department account map",
              "spec_name": "department_account_map"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "file_type": "csv",
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "role_name": "commerce_agent",
                  "access_level": "full_access"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            },
            "read_policy": {
              "row_filters_by_role": {
                "finance": [
                  {
                    "column": "department",
                    "op": "=",
                    "value": "finance"
                  }
                ],
                "marketing": [
                  {
                    "column": "department",
                    "op": "=",
                    "value": "marketing"
                  }
                ],
                "operations": [
                  {
                    "column": "department",
                    "op": "=",
                    "value": "operations"
                  }
                ],
                "warehouse": [
                  {
                    "column": "department",
                    "op": "=",
                    "value": "warehouse"
                  }
                ]
              }
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"department\",\n      \"name\": \"department\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"account code\",\n      \"name\": \"account_code\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"account name\",\n      \"name\": \"account_name\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"spend category\",\n      \"name\": \"spend_category\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Role-scoped department/account reference data for commerce operating decisions.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Department account map\",\n    \"spec_name\": \"department_account_map\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"commerce_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"read_policy\": {\n    \"row_filters_by_role\": {\n      \"finance\": [\n        {\n          \"column\": \"department\",\n          \"op\": \"=\",\n          \"value\": \"finance\"\n        }\n      ],\n      \"marketing\": [\n        {\n          \"column\": \"department\",\n          \"op\": \"=\",\n          \"value\": \"marketing\"\n        }\n      ],\n      \"operations\": [\n        {\n          \"column\": \"department\",\n          \"op\": \"=\",\n          \"value\": \"operations\"\n        }\n      ],\n      \"warehouse\": [\n        {\n          \"column\": \"department\",\n          \"op\": \"=\",\n          \"value\": \"warehouse\"\n        }\n      ]\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "relatedSystems": []
        },
        {
          "specName": "shopify_api_products",
          "specConfig": {
            "column_config": [
              {
                "description": "product id",
                "name": "product_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "variant id",
                "name": "variant_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "sku",
                "name": "sku",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "title",
                "name": "title",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "variant title",
                "name": "variant_title",
                "tests": [],
                "type": "string"
              },
              {
                "description": "weight",
                "name": "weight",
                "tests": [],
                "type": "number"
              },
              {
                "description": "weight unit",
                "name": "weight_unit",
                "tests": [],
                "type": "string"
              },
              {
                "description": "price",
                "name": "price",
                "tests": [
                  "not_null"
                ],
                "type": "number"
              },
              {
                "description": "compare at price",
                "name": "compare_at_price",
                "tests": [],
                "type": "number"
              },
              {
                "description": "inventory item id",
                "name": "inventory_item_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "barcode",
                "name": "barcode",
                "tests": [],
                "type": "string"
              },
              {
                "description": "requires shipping",
                "name": "requires_shipping",
                "tests": [],
                "type": "boolean"
              },
              {
                "description": "taxable",
                "name": "taxable",
                "tests": [],
                "type": "boolean"
              },
              {
                "description": "vendor",
                "name": "vendor",
                "tests": [],
                "type": "string"
              },
              {
                "description": "product type",
                "name": "product_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "tags",
                "name": "tags",
                "tests": [],
                "type": "string"
              },
              {
                "description": "status",
                "name": "status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Product and variant catalog observations pulled from the Shopify API.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Shopify API products",
              "spec_name": "shopify_api_products"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "file_type": "csv",
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "role_name": "commerce_agent",
                  "access_level": "full_access"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"product id\",\n      \"name\": \"product_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"variant id\",\n      \"name\": \"variant_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"sku\",\n      \"name\": \"sku\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"title\",\n      \"name\": \"title\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"variant title\",\n      \"name\": \"variant_title\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"weight\",\n      \"name\": \"weight\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"weight unit\",\n      \"name\": \"weight_unit\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"price\",\n      \"name\": \"price\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"compare at price\",\n      \"name\": \"compare_at_price\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"inventory item id\",\n      \"name\": \"inventory_item_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"barcode\",\n      \"name\": \"barcode\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"requires shipping\",\n      \"name\": \"requires_shipping\",\n      \"tests\": [],\n      \"type\": \"boolean\"\n    },\n    {\n      \"description\": \"taxable\",\n      \"name\": \"taxable\",\n      \"tests\": [],\n      \"type\": \"boolean\"\n    },\n    {\n      \"description\": \"vendor\",\n      \"name\": \"vendor\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"product type\",\n      \"name\": \"product_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"tags\",\n      \"name\": \"tags\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"status\",\n      \"name\": \"status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Product and variant catalog observations pulled from the Shopify API.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Shopify API products\",\n    \"spec_name\": \"shopify_api_products\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"commerce_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "shopify"
          ],
          "relatedSystems": []
        },
        {
          "specName": "shopify_api_orders",
          "specConfig": {
            "column_config": [
              {
                "description": "order id",
                "name": "order_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "order date",
                "name": "order_date",
                "tests": [
                  "not_null"
                ],
                "type": "date",
                "format": "%Y-%m-%d"
              },
              {
                "description": "customer id",
                "name": "customer_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "sku",
                "name": "sku",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "quantity",
                "name": "quantity",
                "tests": [
                  "not_null"
                ],
                "type": "integer"
              },
              {
                "description": "subtotal price",
                "name": "subtotal_price",
                "tests": [
                  "not_null"
                ],
                "type": "number"
              },
              {
                "description": "total shipping price",
                "name": "total_shipping_price",
                "tests": [],
                "type": "number"
              },
              {
                "description": "total discounts",
                "name": "total_discounts",
                "tests": [],
                "type": "number"
              },
              {
                "description": "fulfillment status",
                "name": "fulfillment_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "ship region",
                "name": "ship_region",
                "tests": [],
                "type": "string"
              },
              {
                "description": "tags",
                "name": "tags",
                "tests": [],
                "type": "string"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Order-line observations pulled from the Shopify API for margin, shipping, fulfillment, and regional profitability analysis.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Shopify API orders",
              "spec_name": "shopify_api_orders"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "file_type": "csv",
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "role_name": "commerce_agent",
                  "access_level": "full_access"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"order id\",\n      \"name\": \"order_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"order date\",\n      \"format\": \"%Y-%m-%d\",\n      \"name\": \"order_date\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"date\"\n    },\n    {\n      \"description\": \"customer id\",\n      \"name\": \"customer_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"sku\",\n      \"name\": \"sku\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"quantity\",\n      \"name\": \"quantity\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"subtotal price\",\n      \"name\": \"subtotal_price\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"total shipping price\",\n      \"name\": \"total_shipping_price\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"total discounts\",\n      \"name\": \"total_discounts\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"fulfillment status\",\n      \"name\": \"fulfillment_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"ship region\",\n      \"name\": \"ship_region\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"tags\",\n      \"name\": \"tags\",\n      \"tests\": [],\n      \"type\": \"string\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Order-line observations pulled from the Shopify API for margin, shipping, fulfillment, and regional profitability analysis.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Shopify API orders\",\n    \"spec_name\": \"shopify_api_orders\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"commerce_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "shopify"
          ],
          "relatedSystems": []
        },
        {
          "specName": "flexport_landed_costs",
          "specConfig": {
            "column_config": [
              {
                "description": "shipment id",
                "name": "shipment_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "sku",
                "name": "sku",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "freight cost",
                "name": "freight_cost",
                "tests": [],
                "type": "number"
              },
              {
                "description": "customs cost",
                "name": "customs_cost",
                "tests": [],
                "type": "number"
              },
              {
                "description": "landed cost",
                "name": "landed_cost",
                "tests": [
                  "not_null"
                ],
                "type": "number"
              },
              {
                "description": "shipment weight",
                "name": "shipment_weight",
                "tests": [],
                "type": "number"
              },
              {
                "description": "warehouse destination",
                "name": "warehouse_destination",
                "tests": [],
                "type": "string"
              },
              {
                "description": "carrier",
                "name": "carrier",
                "tests": [],
                "type": "string"
              },
              {
                "description": "shipment status",
                "name": "shipment_status",
                "tests": [],
                "type": "string"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "SKU-level logistics, freight, tariff, landed-cost, and warehouse destination observations.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Flexport landed costs",
              "spec_name": "flexport_landed_costs"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "file_type": "csv",
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "role_name": "commerce_agent",
                  "access_level": "full_access"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"shipment id\",\n      \"name\": \"shipment_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"sku\",\n      \"name\": \"sku\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"freight cost\",\n      \"name\": \"freight_cost\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"customs cost\",\n      \"name\": \"customs_cost\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"landed cost\",\n      \"name\": \"landed_cost\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"shipment weight\",\n      \"name\": \"shipment_weight\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"warehouse destination\",\n      \"name\": \"warehouse_destination\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"carrier\",\n      \"name\": \"carrier\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"shipment status\",\n      \"name\": \"shipment_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"SKU-level logistics, freight, tariff, landed-cost, and warehouse destination observations.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Flexport landed costs\",\n    \"spec_name\": \"flexport_landed_costs\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"commerce_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "flexport"
          ],
          "relatedSystems": []
        },
        {
          "specName": "inventory_levels",
          "specConfig": {
            "column_config": [
              {
                "description": "sku",
                "name": "sku",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "location id",
                "name": "location_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "available quantity",
                "name": "available_quantity",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "reserved quantity",
                "name": "reserved_quantity",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "inbound quantity",
                "name": "inbound_quantity",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "damaged quantity",
                "name": "damaged_quantity",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "last counted at",
                "name": "last_counted_at",
                "tests": [],
                "type": "date",
                "format": "%Y-%m-%d"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Inventory observations across source systems such as Shopify, warehouse, 3PL, Flexport, and manual counts.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Inventory levels",
              "spec_name": "inventory_levels"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "file_type": "csv",
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "role_name": "commerce_agent",
                  "access_level": "full_access"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"sku\",\n      \"name\": \"sku\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"location id\",\n      \"name\": \"location_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"available quantity\",\n      \"name\": \"available_quantity\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"reserved quantity\",\n      \"name\": \"reserved_quantity\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"inbound quantity\",\n      \"name\": \"inbound_quantity\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"damaged quantity\",\n      \"name\": \"damaged_quantity\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"last counted at\",\n      \"format\": \"%Y-%m-%d\",\n      \"name\": \"last_counted_at\",\n      \"tests\": [],\n      \"type\": \"date\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Inventory observations across source systems such as Shopify, warehouse, 3PL, Flexport, and manual counts.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Inventory levels\",\n    \"spec_name\": \"inventory_levels\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"commerce_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [],
          "relatedSystems": [
            "shopify",
            "flexport"
          ]
        },
        {
          "specName": "ad_spend",
          "specConfig": {
            "column_config": [
              {
                "description": "spend date",
                "name": "spend_date",
                "tests": [
                  "not_null"
                ],
                "type": "date",
                "format": "%Y-%m-%d"
              },
              {
                "description": "platform",
                "name": "platform",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "campaign id",
                "name": "campaign_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "sku",
                "name": "sku",
                "tests": [],
                "type": "string"
              },
              {
                "description": "spend",
                "name": "spend",
                "tests": [
                  "not_null"
                ],
                "type": "number"
              },
              {
                "description": "attributed revenue",
                "name": "attributed_revenue",
                "tests": [],
                "type": "number"
              },
              {
                "description": "attributed orders",
                "name": "attributed_orders",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "region",
                "name": "region",
                "tests": [],
                "type": "string"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Marketing spend and attributed revenue observations for margin-aware pricing and campaign analysis.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Ad spend",
              "spec_name": "ad_spend"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "file_type": "csv",
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "role_name": "commerce_agent",
                  "access_level": "full_access"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"spend date\",\n      \"format\": \"%Y-%m-%d\",\n      \"name\": \"spend_date\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"date\"\n    },\n    {\n      \"description\": \"platform\",\n      \"name\": \"platform\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"campaign id\",\n      \"name\": \"campaign_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"sku\",\n      \"name\": \"sku\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"spend\",\n      \"name\": \"spend\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"attributed revenue\",\n      \"name\": \"attributed_revenue\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"attributed orders\",\n      \"name\": \"attributed_orders\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"region\",\n      \"name\": \"region\",\n      \"tests\": [],\n      \"type\": \"string\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Marketing spend and attributed revenue observations for margin-aware pricing and campaign analysis.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Ad spend\",\n    \"spec_name\": \"ad_spend\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"commerce_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "ad_platforms"
          ],
          "relatedSystems": []
        },
        {
          "specName": "subscription_events",
          "specConfig": {
            "column_config": [
              {
                "description": "event date",
                "name": "event_date",
                "tests": [
                  "not_null"
                ],
                "type": "date",
                "format": "%Y-%m-%d"
              },
              {
                "description": "customer id",
                "name": "customer_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "sku",
                "name": "sku",
                "tests": [],
                "type": "string"
              },
              {
                "description": "event type",
                "name": "event_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "subscription status",
                "name": "subscription_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "mrr",
                "name": "mrr",
                "tests": [],
                "type": "number"
              },
              {
                "description": "churn reason",
                "name": "churn_reason",
                "tests": [],
                "type": "string"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Subscription renewals, failed payments, cancellation, churn, and retention observations.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Subscription events",
              "spec_name": "subscription_events"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "file_type": "csv",
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "role_name": "commerce_agent",
                  "access_level": "full_access"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"event date\",\n      \"format\": \"%Y-%m-%d\",\n      \"name\": \"event_date\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"date\"\n    },\n    {\n      \"description\": \"customer id\",\n      \"name\": \"customer_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"sku\",\n      \"name\": \"sku\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"event type\",\n      \"name\": \"event_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"subscription status\",\n      \"name\": \"subscription_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"mrr\",\n      \"name\": \"mrr\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"churn reason\",\n      \"name\": \"churn_reason\",\n      \"tests\": [],\n      \"type\": \"string\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Subscription renewals, failed payments, cancellation, churn, and retention observations.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Subscription events\",\n    \"spec_name\": \"subscription_events\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"commerce_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "subscription_platforms"
          ],
          "relatedSystems": []
        },
        {
          "specName": "sku_catalog_reconciliation",
          "specConfig": {
            "column_config": [
              {
                "description": "issue id",
                "name": "issue_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "detected at",
                "name": "detected_at",
                "tests": [
                  "not_null"
                ],
                "type": "date",
                "format": "%Y-%m-%d"
              },
              {
                "description": "sku",
                "name": "sku",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "source system",
                "name": "source_system",
                "tests": [],
                "type": "string"
              },
              {
                "description": "issue type",
                "name": "issue_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "severity",
                "name": "severity",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "observation",
                "name": "observation",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "recommended action",
                "name": "recommended_action",
                "tests": [],
                "type": "string"
              },
              {
                "description": "status",
                "name": "status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Findings for SKU, catalog, marketplace, dimensional, and status drift across commerce systems.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "SKU catalog reconciliation",
              "spec_name": "sku_catalog_reconciliation"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "file_type": "csv",
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "role_name": "commerce_agent",
                  "access_level": "full_access"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"issue id\",\n      \"name\": \"issue_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"detected at\",\n      \"format\": \"%Y-%m-%d\",\n      \"name\": \"detected_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"date\"\n    },\n    {\n      \"description\": \"sku\",\n      \"name\": \"sku\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"source system\",\n      \"name\": \"source_system\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"issue type\",\n      \"name\": \"issue_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"severity\",\n      \"name\": \"severity\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"observation\",\n      \"name\": \"observation\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"recommended action\",\n      \"name\": \"recommended_action\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"status\",\n      \"name\": \"status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Findings for SKU, catalog, marketplace, dimensional, and status drift across commerce systems.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"SKU catalog reconciliation\",\n    \"spec_name\": \"sku_catalog_reconciliation\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"commerce_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "commerce_reconciliation"
          ],
          "relatedSystems": [
            "shopify"
          ]
        },
        {
          "specName": "shipping_margin_reconciliation",
          "specConfig": {
            "column_config": [
              {
                "description": "finding id",
                "name": "finding_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "detected at",
                "name": "detected_at",
                "tests": [
                  "not_null"
                ],
                "type": "date",
                "format": "%Y-%m-%d"
              },
              {
                "description": "sku",
                "name": "sku",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "region",
                "name": "region",
                "tests": [],
                "type": "string"
              },
              {
                "description": "price",
                "name": "price",
                "tests": [],
                "type": "number"
              },
              {
                "description": "landed cost",
                "name": "landed_cost",
                "tests": [],
                "type": "number"
              },
              {
                "description": "avg shipping cost",
                "name": "avg_shipping_cost",
                "tests": [],
                "type": "number"
              },
              {
                "description": "shipping charged",
                "name": "shipping_charged",
                "tests": [],
                "type": "number"
              },
              {
                "description": "margin after shipping",
                "name": "margin_after_shipping",
                "tests": [],
                "type": "number"
              },
              {
                "description": "finding",
                "name": "finding",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "status",
                "name": "status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Continuous comparison of price, landed cost, shipping cost, shipping charged, and residual margin.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Shipping margin reconciliation",
              "spec_name": "shipping_margin_reconciliation"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "file_type": "csv",
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "role_name": "commerce_agent",
                  "access_level": "full_access"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"finding id\",\n      \"name\": \"finding_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"detected at\",\n      \"format\": \"%Y-%m-%d\",\n      \"name\": \"detected_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"date\"\n    },\n    {\n      \"description\": \"sku\",\n      \"name\": \"sku\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"region\",\n      \"name\": \"region\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"price\",\n      \"name\": \"price\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"landed cost\",\n      \"name\": \"landed_cost\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"avg shipping cost\",\n      \"name\": \"avg_shipping_cost\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"shipping charged\",\n      \"name\": \"shipping_charged\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"margin after shipping\",\n      \"name\": \"margin_after_shipping\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"finding\",\n      \"name\": \"finding\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"status\",\n      \"name\": \"status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Continuous comparison of price, landed cost, shipping cost, shipping charged, and residual margin.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Shipping margin reconciliation\",\n    \"spec_name\": \"shipping_margin_reconciliation\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"commerce_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "commerce_reconciliation"
          ],
          "relatedSystems": [
            "shopify",
            "flexport"
          ]
        },
        {
          "specName": "bundle_profitability_reconciliation",
          "specConfig": {
            "column_config": [
              {
                "description": "bundle id",
                "name": "bundle_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "bundle sku",
                "name": "bundle_sku",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "component skus",
                "name": "component_skus",
                "tests": [],
                "type": "string"
              },
              {
                "description": "price",
                "name": "price",
                "tests": [],
                "type": "number"
              },
              {
                "description": "component landed cost",
                "name": "component_landed_cost",
                "tests": [],
                "type": "number"
              },
              {
                "description": "avg shipping cost",
                "name": "avg_shipping_cost",
                "tests": [],
                "type": "number"
              },
              {
                "description": "margin",
                "name": "margin",
                "tests": [],
                "type": "number"
              },
              {
                "description": "recommendation",
                "name": "recommendation",
                "tests": [],
                "type": "string"
              },
              {
                "description": "status",
                "name": "status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Bundle composition, fulfillment, landed-cost, promotion, and shipping profitability findings.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Bundle profitability reconciliation",
              "spec_name": "bundle_profitability_reconciliation"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "file_type": "csv",
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "role_name": "commerce_agent",
                  "access_level": "full_access"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"bundle id\",\n      \"name\": \"bundle_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"bundle sku\",\n      \"name\": \"bundle_sku\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"component skus\",\n      \"name\": \"component_skus\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"price\",\n      \"name\": \"price\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"component landed cost\",\n      \"name\": \"component_landed_cost\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"avg shipping cost\",\n      \"name\": \"avg_shipping_cost\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"margin\",\n      \"name\": \"margin\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"recommendation\",\n      \"name\": \"recommendation\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"status\",\n      \"name\": \"status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Bundle composition, fulfillment, landed-cost, promotion, and shipping profitability findings.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Bundle profitability reconciliation\",\n    \"spec_name\": \"bundle_profitability_reconciliation\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"commerce_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "commerce_reconciliation"
          ],
          "relatedSystems": [
            "shopify",
            "flexport"
          ]
        },
        {
          "specName": "shopify_agent_api_price_changes",
          "specConfig": {
            "column_config": [
              {
                "description": "change id",
                "name": "change_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "variant id",
                "name": "variant_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "sku",
                "name": "sku",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "current price",
                "name": "current_price",
                "tests": [
                  "not_null"
                ],
                "type": "number"
              },
              {
                "description": "proposed price",
                "name": "proposed_price",
                "tests": [
                  "not_null"
                ],
                "type": "number"
              },
              {
                "description": "reason",
                "name": "reason",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "expected margin lift",
                "name": "expected_margin_lift",
                "tests": [],
                "type": "number"
              },
              {
                "description": "source finding id",
                "name": "source_finding_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "decision status",
                "name": "decision_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Draft Shopify variant price changes proposed by an agent and approved by a human before outbound Shopify API sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Shopify agent API price changes",
              "spec_name": "shopify_agent_api_price_changes",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Draft",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "file_type": "csv",
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "role_name": "commerce_agent",
                  "access_level": "full_access"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"change id\",\n      \"name\": \"change_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"variant id\",\n      \"name\": \"variant_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"sku\",\n      \"name\": \"sku\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"current price\",\n      \"name\": \"current_price\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"proposed price\",\n      \"name\": \"proposed_price\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"reason\",\n      \"name\": \"reason\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"expected margin lift\",\n      \"name\": \"expected_margin_lift\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"source finding id\",\n      \"name\": \"source_finding_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"decision status\",\n      \"name\": \"decision_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Draft Shopify variant price changes proposed by an agent and approved by a human before outbound Shopify API sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Shopify agent API price changes\",\n    \"spec_name\": \"shopify_agent_api_price_changes\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"commerce_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "shopify"
          ],
          "relatedSystems": []
        },
        {
          "specName": "shopify_agent_api_catalog_updates",
          "specConfig": {
            "column_config": [
              {
                "description": "update id",
                "name": "update_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "variant id",
                "name": "variant_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "sku",
                "name": "sku",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "update type",
                "name": "update_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "current value",
                "name": "current_value",
                "tests": [],
                "type": "string"
              },
              {
                "description": "proposed value",
                "name": "proposed_value",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "reason",
                "name": "reason",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "source issue id",
                "name": "source_issue_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "decision status",
                "name": "decision_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "approved by",
                "name": "approved_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "approved at",
                "name": "approved_at",
                "tests": [],
                "type": "string"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Draft Shopify product or variant catalog updates proposed by an agent and approved by a human before outbound Shopify API sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Shopify agent API catalog updates",
              "spec_name": "shopify_agent_api_catalog_updates",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Draft",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "file_type": "csv",
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "role_name": "commerce_agent",
                  "access_level": "full_access"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"update id\",\n      \"name\": \"update_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"variant id\",\n      \"name\": \"variant_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"sku\",\n      \"name\": \"sku\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"update type\",\n      \"name\": \"update_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"current value\",\n      \"name\": \"current_value\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"proposed value\",\n      \"name\": \"proposed_value\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"reason\",\n      \"name\": \"reason\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"source issue id\",\n      \"name\": \"source_issue_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"decision status\",\n      \"name\": \"decision_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"approved by\",\n      \"name\": \"approved_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"approved at\",\n      \"name\": \"approved_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Draft Shopify product or variant catalog updates proposed by an agent and approved by a human before outbound Shopify API sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Shopify agent API catalog updates\",\n    \"spec_name\": \"shopify_agent_api_catalog_updates\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"commerce_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "shopify"
          ],
          "relatedSystems": []
        }
      ],
      "createSpecSourceLinks": [
        {
          "downstream_spec_name": "bill_com_updates",
          "source_spec_name": "employee_info",
          "link_options": {
            "reference_mode": "immutable_accept",
            "min_count": 1,
            "max_count": null,
            "allow_upload_instead": false,
            "allow_upload_in_addition": false,
            "details": {
              "intent": "Compare canonical employee_info against Bill.com API payee setup before approving Bill.com update proposals."
            }
          }
        },
        {
          "downstream_spec_name": "bill_com_updates",
          "source_spec_name": "bill_com_api_employee_payees",
          "link_options": {
            "reference_mode": "immutable_accept",
            "min_count": 1,
            "max_count": null,
            "allow_upload_instead": false,
            "allow_upload_in_addition": false,
            "details": {
              "intent": "Ground proposed Bill.com setup edits in the latest Bill.com API pull."
            }
          }
        },
        {
          "downstream_spec_name": "employee_reimbursement_commitment",
          "source_spec_name": "employee_reimbursements",
          "link_options": {
            "required_workflow_status": "Approved",
            "reference_mode": "immutable_accept",
            "min_count": 1,
            "max_count": null,
            "allow_upload_instead": false,
            "allow_upload_in_addition": false,
            "details": {
              "intent": "Gather Approved reimbursement files into an employee_reimbursement_commitment row; join employee_info and Bill.com API payees for provider ids before outbound payment APIs."
            }
          }
        },
        {
          "downstream_spec_name": "employee_reimbursement_commitment",
          "source_spec_name": "employee_info",
          "link_options": {
            "reference_mode": "immutable_accept",
            "min_count": 1,
            "max_count": null,
            "allow_upload_instead": false,
            "allow_upload_in_addition": false,
            "details": {
              "intent": "Resolve employee usernames from approved reimbursements to canonical employee records and Bill.com payee ids."
            }
          }
        },
        {
          "downstream_spec_name": "reimbursement_payment_reconciliation",
          "source_spec_name": "employee_reimbursement_commitment",
          "link_options": {
            "reference_mode": "immutable_accept",
            "min_count": 1,
            "max_count": null,
            "allow_upload_instead": false,
            "allow_upload_in_addition": false,
            "details": {
              "intent": "Compare approved/sent reimbursement commitments with Bill.com confirmations."
            }
          }
        },
        {
          "downstream_spec_name": "reimbursement_payment_reconciliation",
          "source_spec_name": "bill_com_api_payment_confirmations",
          "link_options": {
            "reference_mode": "immutable_accept",
            "min_count": 1,
            "max_count": null,
            "allow_upload_instead": false,
            "allow_upload_in_addition": false,
            "details": {
              "intent": "Use Bill.com payment confirmations as the external-system observation side of reimbursement payment reconciliation."
            }
          }
        }
      ],
      "relatedSystems": [
        "shopify",
        "flexport",
        "bill_com",
        "ad_platforms",
        "subscription_platforms",
        "commerce_reconciliation"
      ],
      "coverageNotes": "This is a mixed operations collection. Shopify-labeled specs inside it are direct Shopify API observations or outbound Shopify commitments; reconciliation and generic helper specs are labeled as commerce reconciliation or internal specs."
    },
    {
      "id": "bill_com_employee_reimbursements",
      "type": "collection",
      "domains": [
        "finance"
      ],
      "version": "1.1.0",
      "summary": "Mixed Bill.com-related workflow for employee submissions, receipt attachments, agent reviews, approvals, Bill.com commitments, confirmations, and reconciliation.",
      "includes": [
        "employee_info",
        "bill_com_api_employee_payees",
        "employee_reimbursements",
        "employee_reimbursement_reviews",
        "ops_issues",
        "bill_com_updates",
        "employee_reimbursement_commitment",
        "bill_com_api_payment_confirmations",
        "reimbursement_payment_reconciliation"
      ],
      "needs": [
        "bill_com_agent_role."
      ],
      "usefulFor": [
        "Receipt workflows",
        "Manager approval",
        "Payment batch preparation",
        "Bill.com setup checks",
        "Payment matching"
      ],
      "links": [
        {
          "from": "employee_reimbursements",
          "to": "employee_reimbursement_commitment",
          "kind": "source_link",
          "description": "Approved reimbursements feed outbound payment commitments."
        },
        {
          "from": "employee_reimbursement_commitment",
          "to": "bill_com_api_payment_confirmations",
          "kind": "source_link",
          "description": "Sent commitments are matched to Bill.com payment confirmations."
        },
        {
          "from": "bill_com_api_payment_confirmations",
          "to": "reimbursement_payment_reconciliation",
          "kind": "source_link",
          "description": "Confirmations feed payment reconciliation."
        }
      ],
      "installedSpecs": [
        {
          "id": "employee_info",
          "domain": "Reference",
          "purpose": "Employee roster with managers, departments, and Bill.com payee ids."
        },
        {
          "id": "bill_com_api_employee_payees",
          "domain": "Observation",
          "purpose": "Bill.com payee setup pulled by an agent.",
          "systems": [
            "bill_com"
          ]
        },
        {
          "id": "employee_reimbursements",
          "domain": "Employee workflow",
          "purpose": "Employee-submitted reimbursements with required receipt attachments."
        },
        {
          "id": "employee_reimbursement_reviews",
          "domain": "Agent review",
          "purpose": "Timestamped reviews with check outcomes and evidence."
        },
        {
          "id": "ops_issues",
          "domain": "Issue register",
          "purpose": "Review findings, exceptions, setup mismatches, policy questions, and reconciliation problems."
        },
        {
          "id": "bill_com_updates",
          "domain": "Setup commitment",
          "purpose": "Agent-proposed Bill.com setup edits.",
          "systems": [
            "bill_com"
          ]
        },
        {
          "id": "employee_reimbursement_commitment",
          "domain": "Payment commitment",
          "purpose": "Outbound payment packet built from approved reimbursements and employee/payee setup.",
          "systems": [
            "bill_com"
          ]
        },
        {
          "id": "bill_com_api_payment_confirmations",
          "domain": "Observation",
          "purpose": "Bill.com payment confirmations from webhook or polling.",
          "systems": [
            "bill_com"
          ]
        },
        {
          "id": "reimbursement_payment_reconciliation",
          "domain": "Reconciliation",
          "purpose": "Matches sent reimbursement commitments to Bill.com payment confirmations.",
          "systems": [
            "bill_com"
          ]
        }
      ],
      "searchTerms": [
        "bill.com",
        "bill com",
        "employee reimbursements",
        "receipts",
        "approvals",
        "payees",
        "payment commitment",
        "confirmations",
        "reconciliation",
        "ops issues",
        "reviews",
        "agent review",
        "employee info",
        "source links",
        "workflow dependencies"
      ],
      "createSpecPayloads": [
        {
          "specName": "employee_info",
          "specConfig": {
            "column_config": [
              {
                "description": "employee username",
                "name": "employee_username",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "employee name",
                "name": "employee_name",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "work email",
                "name": "work_email",
                "tests": [],
                "type": "string"
              },
              {
                "description": "manager username",
                "name": "manager_username",
                "tests": [],
                "type": "string"
              },
              {
                "description": "department",
                "name": "department",
                "tests": [],
                "type": "string"
              },
              {
                "description": "default reimbursement category",
                "name": "default_reimbursement_category",
                "tests": [],
                "type": "string"
              },
              {
                "description": "airlock status",
                "name": "airlock_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "bill com payee external id",
                "name": "bill_com_payee_external_id",
                "tests": [],
                "type": "string"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Canonical employee roster used by reimbursement agents when joining Airlock employee identity to Bill.com payee setup.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Employee info",
              "spec_name": "employee_info"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "file_type": "csv",
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "role_name": "bill_com_agent",
                  "access_level": "full_access"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"employee username\",\n      \"name\": \"employee_username\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"employee name\",\n      \"name\": \"employee_name\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"work email\",\n      \"name\": \"work_email\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"manager username\",\n      \"name\": \"manager_username\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"department\",\n      \"name\": \"department\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"default reimbursement category\",\n      \"name\": \"default_reimbursement_category\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"airlock status\",\n      \"name\": \"airlock_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"bill com payee external id\",\n      \"name\": \"bill_com_payee_external_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Canonical employee roster used by reimbursement agents when joining Airlock employee identity to Bill.com payee setup.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Employee info\",\n    \"spec_name\": \"employee_info\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"bill_com_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [],
          "relatedSystems": [
            "bill_com"
          ]
        },
        {
          "specName": "bill_com_api_employee_payees",
          "specConfig": {
            "column_config": [
              {
                "description": "bill com payee external id",
                "name": "bill_com_payee_external_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "display name",
                "name": "display_name",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "email",
                "name": "email",
                "tests": [],
                "type": "string"
              },
              {
                "description": "status",
                "name": "status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "default payment method",
                "name": "default_payment_method",
                "tests": [],
                "type": "string"
              },
              {
                "description": "remittance address",
                "name": "remittance_address",
                "tests": [],
                "type": "string"
              },
              {
                "description": "last pulled at",
                "name": "last_pulled_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "raw record hash",
                "name": "raw_record_hash",
                "tests": [],
                "type": "string"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Payee, vendor, or user setup observations pulled from Bill.com by an agent through the Bill.com API.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Bill.com API employee payees",
              "spec_name": "bill_com_api_employee_payees"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "file_type": "csv",
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "role_name": "bill_com_agent",
                  "access_level": "full_access"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"bill com payee external id\",\n      \"name\": \"bill_com_payee_external_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"display name\",\n      \"name\": \"display_name\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"email\",\n      \"name\": \"email\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"status\",\n      \"name\": \"status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"default payment method\",\n      \"name\": \"default_payment_method\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"remittance address\",\n      \"name\": \"remittance_address\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"last pulled at\",\n      \"name\": \"last_pulled_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"raw record hash\",\n      \"name\": \"raw_record_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Payee, vendor, or user setup observations pulled from Bill.com by an agent through the Bill.com API.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Bill.com API employee payees\",\n    \"spec_name\": \"bill_com_api_employee_payees\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"bill_com_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "bill_com"
          ],
          "relatedSystems": []
        },
        {
          "specName": "employee_reimbursements",
          "specConfig": {
            "column_config": [
              {
                "description": "reimbursement id",
                "name": "reimbursement_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "employee username",
                "name": "employee_username",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "manager username",
                "name": "manager_username",
                "tests": [],
                "type": "string"
              },
              {
                "description": "receipt date",
                "name": "receipt_date",
                "tests": [
                  "not_null"
                ],
                "type": "date",
                "format": "%Y-%m-%d"
              },
              {
                "description": "merchant",
                "name": "merchant",
                "tests": [],
                "type": "string"
              },
              {
                "description": "amount",
                "name": "amount",
                "tests": [
                  "not_null"
                ],
                "type": "number"
              },
              {
                "description": "currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "category",
                "name": "category",
                "tests": [],
                "type": "string"
              },
              {
                "description": "policy flag",
                "name": "policy_flag",
                "tests": [],
                "type": "string"
              },
              {
                "description": "extracted summary",
                "name": "extracted_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Flexible JSON context for agent/source details, receipt extraction, and policy signals",
                "name": "processing_context",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "approval status",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "approved by",
                "name": "approved_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "approved at",
                "name": "approved_at",
                "tests": [],
                "type": "string"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Employee reimbursement submissions with required receipt attachments and Draft -> Submitted -> Reviewed -> Approved workflow. An agent records a review separately before approval.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Employee reimbursements",
              "spec_name": "employee_reimbursements",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Reviewed",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Reviewed",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Approved",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Reviewed",
                  "require_comment": true,
                  "step_name": "Approved",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "file_type": "csv",
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "role_name": "bill_com_agent",
                  "access_level": "full_access"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            },
            "attachment_policy": {
              "attachments_enabled": true,
              "attachment_required": true,
              "max_attachment_count": 5,
              "default_attachment_tag_limit": 1,
              "allow_custom_attachment_tags": true,
              "allowed_extensions": [
                ".pdf",
                ".png",
                ".jpg",
                ".jpeg"
              ]
            },
            "rules": [
              {
                "type": "variant_shape",
                "field": "processing_context",
                "allowed_root_keys": [
                  "submission",
                  "receipt",
                  "policy"
                ],
                "paths": [
                  {
                    "json_path": "$.submission.channel",
                    "type": "string",
                    "required": true
                  },
                  {
                    "json_path": "$.receipt.total",
                    "type": "number",
                    "required": true
                  },
                  {
                    "json_path": "$.policy.requires_manager_review",
                    "type": "boolean",
                    "required": true
                  },
                  {
                    "json_path": "$.policy.reason",
                    "type": "string",
                    "required": false
                  }
                ]
              }
            ]
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"attachment_policy\": {\n    \"allow_custom_attachment_tags\": true,\n    \"allowed_extensions\": [\n      \".pdf\",\n      \".png\",\n      \".jpg\",\n      \".jpeg\"\n    ],\n    \"attachment_required\": true,\n    \"attachments_enabled\": true,\n    \"default_attachment_tag_limit\": 1,\n    \"max_attachment_count\": 5\n  },\n  \"column_config\": [\n    {\n      \"description\": \"reimbursement id\",\n      \"name\": \"reimbursement_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"employee username\",\n      \"name\": \"employee_username\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"manager username\",\n      \"name\": \"manager_username\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"receipt date\",\n      \"format\": \"%Y-%m-%d\",\n      \"name\": \"receipt_date\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"date\"\n    },\n    {\n      \"description\": \"merchant\",\n      \"name\": \"merchant\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"amount\",\n      \"name\": \"amount\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"category\",\n      \"name\": \"category\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"policy flag\",\n      \"name\": \"policy_flag\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"extracted summary\",\n      \"name\": \"extracted_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Flexible JSON context for agent/source details, receipt extraction, and policy signals\",\n      \"name\": \"processing_context\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"approval status\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"approved by\",\n      \"name\": \"approved_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"approved at\",\n      \"name\": \"approved_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Employee reimbursement submissions with required receipt attachments and Draft -> Submitted -> Reviewed -> Approved workflow. An agent records a review separately before approval.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Employee reimbursements\",\n    \"spec_name\": \"employee_reimbursements\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Reviewed\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Reviewed\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Approved\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Reviewed\",\n        \"require_comment\": true,\n        \"step_name\": \"Approved\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"bill_com_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"rules\": [\n    {\n      \"allowed_root_keys\": [\n        \"submission\",\n        \"receipt\",\n        \"policy\"\n      ],\n      \"field\": \"processing_context\",\n      \"paths\": [\n        {\n          \"json_path\": \"$.submission.channel\",\n          \"required\": true,\n          \"type\": \"string\"\n        },\n        {\n          \"json_path\": \"$.receipt.total\",\n          \"required\": true,\n          \"type\": \"number\"\n        },\n        {\n          \"json_path\": \"$.policy.requires_manager_review\",\n          \"required\": true,\n          \"type\": \"boolean\"\n        },\n        {\n          \"json_path\": \"$.policy.reason\",\n          \"required\": false,\n          \"type\": \"string\"\n        }\n      ],\n      \"type\": \"variant_shape\"\n    }\n  ],\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [],
          "relatedSystems": [
            "bill_com"
          ]
        },
        {
          "specName": "employee_reimbursement_reviews",
          "specConfig": {
            "column_config": [
              {
                "description": "review id",
                "name": "review_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "reviewed at",
                "name": "reviewed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "reviewed by agent",
                "name": "reviewed_by_agent",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "reimbursement spec name",
                "name": "reimbursement_spec_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "reimbursement path",
                "name": "reimbursement_path",
                "tests": [],
                "type": "string"
              },
              {
                "description": "reimbursement filename",
                "name": "reimbursement_filename",
                "tests": [],
                "type": "string"
              },
              {
                "description": "reimbursement id",
                "name": "reimbursement_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "employee username",
                "name": "employee_username",
                "tests": [],
                "type": "string"
              },
              {
                "description": "review status",
                "name": "review_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "receipt check result",
                "name": "receipt_check_result",
                "tests": [],
                "type": "string"
              },
              {
                "description": "policy check result",
                "name": "policy_check_result",
                "tests": [],
                "type": "string"
              },
              {
                "description": "duplicate check result",
                "name": "duplicate_check_result",
                "tests": [],
                "type": "string"
              },
              {
                "description": "employee setup check result",
                "name": "employee_setup_check_result",
                "tests": [],
                "type": "string"
              },
              {
                "description": "bill com setup check result",
                "name": "bill_com_setup_check_result",
                "tests": [],
                "type": "string"
              },
              {
                "description": "recommended manager action",
                "name": "recommended_manager_action",
                "tests": [],
                "type": "string"
              },
              {
                "description": "review summary",
                "name": "review_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "bill com update ids",
                "name": "bill_com_update_ids",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Structured check outcomes recorded by the review agent.",
                "name": "check_results",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Flexible review evidence such as extracted receipt, policy, duplicate, and setup context.",
                "name": "review_evidence",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Timestamped agent review records for submitted reimbursements. These records soft-reference the reimbursement file path and reimbursement id without creating a hard source link, so the submitted file can be deleted later without breaking review history.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Employee reimbursement reviews",
              "spec_name": "employee_reimbursement_reviews"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "file_type": "csv",
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "role_name": "bill_com_agent",
                  "access_level": "full_access"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            },
            "rules": [
              {
                "type": "variant_shape",
                "field": "check_results",
                "paths": [
                  {
                    "json_path": "$.checks",
                    "type": "array",
                    "required": true
                  },
                  {
                    "json_path": "$.recommended_update_ids",
                    "type": "array",
                    "required": false
                  }
                ],
                "allowed_root_keys": [
                  "checks",
                  "recommended_update_ids"
                ]
              },
              {
                "type": "variant_shape",
                "field": "review_evidence",
                "paths": [
                  {
                    "json_path": "$.employee.username",
                    "type": "string",
                    "required": true
                  },
                  {
                    "json_path": "$.receipt.amount",
                    "type": "number",
                    "required": true
                  },
                  {
                    "json_path": "$.duplicate_candidates",
                    "type": "array",
                    "required": true
                  },
                  {
                    "json_path": "$.policy_context.manager_context_required",
                    "type": "boolean",
                    "required": true
                  },
                  {
                    "json_path": "$.bill_com.payee_external_id",
                    "type": "string",
                    "required": false
                  }
                ],
                "allowed_root_keys": [
                  "employee",
                  "receipt",
                  "duplicate_candidates",
                  "policy_context",
                  "bill_com"
                ]
              }
            ]
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"review id\",\n      \"name\": \"review_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"reviewed at\",\n      \"name\": \"reviewed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"reviewed by agent\",\n      \"name\": \"reviewed_by_agent\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"reimbursement spec name\",\n      \"name\": \"reimbursement_spec_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"reimbursement path\",\n      \"name\": \"reimbursement_path\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"reimbursement filename\",\n      \"name\": \"reimbursement_filename\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"reimbursement id\",\n      \"name\": \"reimbursement_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"employee username\",\n      \"name\": \"employee_username\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"review status\",\n      \"name\": \"review_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"receipt check result\",\n      \"name\": \"receipt_check_result\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"policy check result\",\n      \"name\": \"policy_check_result\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"duplicate check result\",\n      \"name\": \"duplicate_check_result\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"employee setup check result\",\n      \"name\": \"employee_setup_check_result\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"bill com setup check result\",\n      \"name\": \"bill_com_setup_check_result\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"recommended manager action\",\n      \"name\": \"recommended_manager_action\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"review summary\",\n      \"name\": \"review_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"bill com update ids\",\n      \"name\": \"bill_com_update_ids\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Structured check outcomes recorded by the review agent.\",\n      \"name\": \"check_results\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Flexible review evidence such as extracted receipt, policy, duplicate, and setup context.\",\n      \"name\": \"review_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Timestamped agent review records for submitted reimbursements. These records soft-reference the reimbursement file path and reimbursement id without creating a hard source link, so the submitted file can be deleted later without breaking review history.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Employee reimbursement reviews\",\n    \"spec_name\": \"employee_reimbursement_reviews\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"bill_com_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"rules\": [\n    {\n      \"allowed_root_keys\": [\n        \"checks\",\n        \"recommended_update_ids\"\n      ],\n      \"field\": \"check_results\",\n      \"paths\": [\n        {\n          \"json_path\": \"$.checks\",\n          \"required\": true,\n          \"type\": \"array\"\n        },\n        {\n          \"json_path\": \"$.recommended_update_ids\",\n          \"required\": false,\n          \"type\": \"array\"\n        }\n      ],\n      \"type\": \"variant_shape\"\n    },\n    {\n      \"allowed_root_keys\": [\n        \"employee\",\n        \"receipt\",\n        \"duplicate_candidates\",\n        \"policy_context\",\n        \"bill_com\"\n      ],\n      \"field\": \"review_evidence\",\n      \"paths\": [\n        {\n          \"json_path\": \"$.employee.username\",\n          \"required\": true,\n          \"type\": \"string\"\n        },\n        {\n          \"json_path\": \"$.receipt.amount\",\n          \"required\": true,\n          \"type\": \"number\"\n        },\n        {\n          \"json_path\": \"$.duplicate_candidates\",\n          \"required\": true,\n          \"type\": \"array\"\n        },\n        {\n          \"json_path\": \"$.policy_context.manager_context_required\",\n          \"required\": true,\n          \"type\": \"boolean\"\n        },\n        {\n          \"json_path\": \"$.bill_com.payee_external_id\",\n          \"required\": false,\n          \"type\": \"string\"\n        }\n      ],\n      \"type\": \"variant_shape\"\n    }\n  ],\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [],
          "relatedSystems": [
            "bill_com"
          ]
        },
        {
          "specName": "ops_issues",
          "specConfig": {
            "column_config": [
              {
                "description": "issue id",
                "name": "issue_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "opened at",
                "name": "opened_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "opened by actor",
                "name": "opened_by_actor",
                "tests": [],
                "type": "string"
              },
              {
                "description": "source process",
                "name": "source_process",
                "tests": [],
                "type": "string"
              },
              {
                "description": "source spec name",
                "name": "source_spec_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "source path",
                "name": "source_path",
                "tests": [],
                "type": "string"
              },
              {
                "description": "source filename",
                "name": "source_filename",
                "tests": [],
                "type": "string"
              },
              {
                "description": "source record id",
                "name": "source_record_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "related spec name",
                "name": "related_spec_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "related record id",
                "name": "related_record_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "issue type",
                "name": "issue_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "severity",
                "name": "severity",
                "tests": [],
                "type": "string"
              },
              {
                "description": "status",
                "name": "status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "owner role",
                "name": "owner_role",
                "tests": [],
                "type": "string"
              },
              {
                "description": "assignee",
                "name": "assignee",
                "tests": [],
                "type": "string"
              },
              {
                "description": "concern summary",
                "name": "concern_summary",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "recommended action",
                "name": "recommended_action",
                "tests": [],
                "type": "string"
              },
              {
                "description": "resolution summary",
                "name": "resolution_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "resolved at",
                "name": "resolved_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Issue-specific categorization and structured details that may evolve over time.",
                "name": "issue_details",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Flexible evidence captured by the agent or reconciliation process.",
                "name": "evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "One or more proposed operational actions or targets.",
                "name": "suggested_actions",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Flexible operational issue register for concerns discovered during agent review or reconciliation. Rows soft-reference the source work and can later be standardized into specialized issue types.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Ops issues",
              "spec_name": "ops_issues"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "file_type": "csv",
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "role_name": "bill_com_agent",
                  "access_level": "full_access"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            },
            "rules": [
              {
                "type": "variant_shape",
                "field": "issue_details",
                "paths": [
                  {
                    "json_path": "$.category",
                    "type": "string",
                    "required": true
                  },
                  {
                    "json_path": "$.problem_code",
                    "type": "string",
                    "required": true
                  },
                  {
                    "json_path": "$.standardization_status",
                    "type": "string",
                    "required": false
                  }
                ],
                "allowed_root_keys": [
                  "category",
                  "problem_code",
                  "standardization_status"
                ]
              },
              {
                "type": "variant_shape",
                "field": "evidence",
                "paths": [
                  {
                    "json_path": "$.employee.username",
                    "type": "string",
                    "required": true
                  },
                  {
                    "json_path": "$.bill_com.payee_external_id",
                    "type": "string",
                    "required": false
                  },
                  {
                    "json_path": "$.review.review_id",
                    "type": "string",
                    "required": false
                  }
                ],
                "allowed_root_keys": [
                  "employee",
                  "bill_com",
                  "review"
                ]
              },
              {
                "type": "variant_shape",
                "field": "suggested_actions",
                "paths": [
                  {
                    "json_path": "$[0].action",
                    "type": "string",
                    "required": true
                  },
                  {
                    "json_path": "$[0].target_spec",
                    "type": "string",
                    "required": true
                  },
                  {
                    "json_path": "$[0].target_record_id",
                    "type": "string",
                    "required": false
                  }
                ],
                "require_object": false
              }
            ]
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"issue id\",\n      \"name\": \"issue_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"opened at\",\n      \"name\": \"opened_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"opened by actor\",\n      \"name\": \"opened_by_actor\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"source process\",\n      \"name\": \"source_process\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"source spec name\",\n      \"name\": \"source_spec_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"source path\",\n      \"name\": \"source_path\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"source filename\",\n      \"name\": \"source_filename\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"source record id\",\n      \"name\": \"source_record_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"related spec name\",\n      \"name\": \"related_spec_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"related record id\",\n      \"name\": \"related_record_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"issue type\",\n      \"name\": \"issue_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"severity\",\n      \"name\": \"severity\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"status\",\n      \"name\": \"status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"owner role\",\n      \"name\": \"owner_role\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"assignee\",\n      \"name\": \"assignee\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"concern summary\",\n      \"name\": \"concern_summary\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"recommended action\",\n      \"name\": \"recommended_action\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"resolution summary\",\n      \"name\": \"resolution_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"resolved at\",\n      \"name\": \"resolved_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Issue-specific categorization and structured details that may evolve over time.\",\n      \"name\": \"issue_details\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Flexible evidence captured by the agent or reconciliation process.\",\n      \"name\": \"evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"One or more proposed operational actions or targets.\",\n      \"name\": \"suggested_actions\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Flexible operational issue register for concerns discovered during agent review or reconciliation. Rows soft-reference the source work and can later be standardized into specialized issue types.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Ops issues\",\n    \"spec_name\": \"ops_issues\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"bill_com_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"rules\": [\n    {\n      \"allowed_root_keys\": [\n        \"category\",\n        \"problem_code\",\n        \"standardization_status\"\n      ],\n      \"field\": \"issue_details\",\n      \"paths\": [\n        {\n          \"json_path\": \"$.category\",\n          \"required\": true,\n          \"type\": \"string\"\n        },\n        {\n          \"json_path\": \"$.problem_code\",\n          \"required\": true,\n          \"type\": \"string\"\n        },\n        {\n          \"json_path\": \"$.standardization_status\",\n          \"required\": false,\n          \"type\": \"string\"\n        }\n      ],\n      \"type\": \"variant_shape\"\n    },\n    {\n      \"allowed_root_keys\": [\n        \"employee\",\n        \"bill_com\",\n        \"review\"\n      ],\n      \"field\": \"evidence\",\n      \"paths\": [\n        {\n          \"json_path\": \"$.employee.username\",\n          \"required\": true,\n          \"type\": \"string\"\n        },\n        {\n          \"json_path\": \"$.bill_com.payee_external_id\",\n          \"required\": false,\n          \"type\": \"string\"\n        },\n        {\n          \"json_path\": \"$.review.review_id\",\n          \"required\": false,\n          \"type\": \"string\"\n        }\n      ],\n      \"type\": \"variant_shape\"\n    },\n    {\n      \"field\": \"suggested_actions\",\n      \"paths\": [\n        {\n          \"json_path\": \"$[0].action\",\n          \"required\": true,\n          \"type\": \"string\"\n        },\n        {\n          \"json_path\": \"$[0].target_spec\",\n          \"required\": true,\n          \"type\": \"string\"\n        },\n        {\n          \"json_path\": \"$[0].target_record_id\",\n          \"required\": false,\n          \"type\": \"string\"\n        }\n      ],\n      \"require_object\": false,\n      \"type\": \"variant_shape\"\n    }\n  ],\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [],
          "relatedSystems": [
            "bill_com"
          ]
        },
        {
          "specName": "bill_com_updates",
          "specConfig": {
            "column_config": [
              {
                "description": "update id",
                "name": "update_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "detected at",
                "name": "detected_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "employee username",
                "name": "employee_username",
                "tests": [],
                "type": "string"
              },
              {
                "description": "bill com payee external id",
                "name": "bill_com_payee_external_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "update type",
                "name": "update_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "airlock value",
                "name": "airlock_value",
                "tests": [],
                "type": "string"
              },
              {
                "description": "bill com value",
                "name": "bill_com_value",
                "tests": [],
                "type": "string"
              },
              {
                "description": "proposed value",
                "name": "proposed_value",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "reconciliation problem",
                "name": "reconciliation_problem",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "recommended action",
                "name": "recommended_action",
                "tests": [],
                "type": "string"
              },
              {
                "description": "source employee info id",
                "name": "source_employee_info_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "source bill com record id",
                "name": "source_bill_com_record_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "decision status",
                "name": "decision_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "approved by",
                "name": "approved_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "approved at",
                "name": "approved_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Structured reconciliation context behind the proposed Bill.com setup update.",
                "name": "update_details",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Agent-proposed Bill.com setup edits from reconciliation between employee_info and Bill.com API payee observations.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Bill.com updates",
              "spec_name": "bill_com_updates",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Draft",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Approved",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Approved",
                  "step_order": 3,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "file_type": "csv",
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "role_name": "bill_com_agent",
                  "access_level": "full_access"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            },
            "rules": [
              {
                "type": "variant_shape",
                "field": "update_details",
                "paths": [
                  {
                    "json_path": "$.employee.username",
                    "type": "string",
                    "required": true
                  },
                  {
                    "json_path": "$.field",
                    "type": "string",
                    "required": true
                  },
                  {
                    "json_path": "$.proposed_bill_com_value",
                    "type": "string",
                    "required": true
                  },
                  {
                    "json_path": "$.source_review_id",
                    "type": "string",
                    "required": false
                  }
                ],
                "allowed_root_keys": [
                  "employee",
                  "field",
                  "current_airlock_value",
                  "current_bill_com_value",
                  "proposed_bill_com_value",
                  "source_review_id"
                ]
              }
            ]
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"update id\",\n      \"name\": \"update_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"detected at\",\n      \"name\": \"detected_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"employee username\",\n      \"name\": \"employee_username\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"bill com payee external id\",\n      \"name\": \"bill_com_payee_external_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"update type\",\n      \"name\": \"update_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"airlock value\",\n      \"name\": \"airlock_value\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"bill com value\",\n      \"name\": \"bill_com_value\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"proposed value\",\n      \"name\": \"proposed_value\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"reconciliation problem\",\n      \"name\": \"reconciliation_problem\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"recommended action\",\n      \"name\": \"recommended_action\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"source employee info id\",\n      \"name\": \"source_employee_info_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"source bill com record id\",\n      \"name\": \"source_bill_com_record_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"decision status\",\n      \"name\": \"decision_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"approved by\",\n      \"name\": \"approved_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"approved at\",\n      \"name\": \"approved_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Structured reconciliation context behind the proposed Bill.com setup update.\",\n      \"name\": \"update_details\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Agent-proposed Bill.com setup edits from reconciliation between employee_info and Bill.com API payee observations.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Bill.com updates\",\n    \"spec_name\": \"bill_com_updates\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Approved\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Approved\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"bill_com_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"rules\": [\n    {\n      \"allowed_root_keys\": [\n        \"employee\",\n        \"field\",\n        \"current_airlock_value\",\n        \"current_bill_com_value\",\n        \"proposed_bill_com_value\",\n        \"source_review_id\"\n      ],\n      \"field\": \"update_details\",\n      \"paths\": [\n        {\n          \"json_path\": \"$.employee.username\",\n          \"required\": true,\n          \"type\": \"string\"\n        },\n        {\n          \"json_path\": \"$.field\",\n          \"required\": true,\n          \"type\": \"string\"\n        },\n        {\n          \"json_path\": \"$.proposed_bill_com_value\",\n          \"required\": true,\n          \"type\": \"string\"\n        },\n        {\n          \"json_path\": \"$.source_review_id\",\n          \"required\": false,\n          \"type\": \"string\"\n        }\n      ],\n      \"type\": \"variant_shape\"\n    }\n  ],\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "bill_com"
          ],
          "relatedSystems": []
        },
        {
          "specName": "employee_reimbursement_commitment",
          "specConfig": {
            "column_config": [
              {
                "description": "batch id",
                "name": "batch_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "prepared at",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "prepared by",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "reimbursement ids",
                "name": "reimbursement_ids",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "employee usernames",
                "name": "employee_usernames",
                "tests": [],
                "type": "string"
              },
              {
                "description": "payee external ids",
                "name": "payee_external_ids",
                "tests": [],
                "type": "string"
              },
              {
                "description": "employee count",
                "name": "employee_count",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "total amount",
                "name": "total_amount",
                "tests": [
                  "not_null"
                ],
                "type": "number"
              },
              {
                "description": "currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "api operation",
                "name": "api_operation",
                "tests": [],
                "type": "string"
              },
              {
                "description": "process date",
                "name": "process_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "funding account type",
                "name": "funding_account_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "funding account id",
                "name": "funding_account_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "bill ids",
                "name": "bill_ids",
                "tests": [],
                "type": "string"
              },
              {
                "description": "payment amounts by bill",
                "name": "payment_amounts_by_bill",
                "tests": [],
                "type": "string"
              },
              {
                "description": "api payload hash",
                "name": "api_payload_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "commitment status",
                "name": "commitment_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Structured list of approved reimbursements gathered into this commitment.",
                "name": "selected_reimbursements",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Bill.com API payload prepared by the agent for the outbound payment commitment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "One row per gathered outbound payment packet (not per reimbursement line). Rows are built from Approved employee_reimbursements files (governed by spec_source_links), then enriched with employee-directory fields: employee_usernames mirror Airlock/Snowflake identities from the requests; payee_external_ids hold provider-side ids (e.g. BILL userUuid or vendorId) resolved by joining to an employee roster—often different from the Snowflake username. Bill line / payment metadata (billIds, amounts, processDate, fundingAccount) aligns with BILL POST /v3/payments*; real calls still require MFA-trusted sessions and ids from the vendor system.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Employee reimbursement commitment",
              "spec_name": "employee_reimbursement_commitment",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Prepared",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Prepared",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Prepared",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 3,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "file_type": "csv",
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "role_name": "bill_com_agent",
                  "access_level": "full_access"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            },
            "rules": [
              {
                "type": "variant_shape",
                "field": "selected_reimbursements",
                "paths": [
                  {
                    "json_path": "$[0].reimbursement_id",
                    "type": "string",
                    "required": true
                  },
                  {
                    "json_path": "$[0].employee_username",
                    "type": "string",
                    "required": true
                  },
                  {
                    "json_path": "$[0].amount",
                    "type": "number",
                    "required": true
                  },
                  {
                    "json_path": "$[0].currency",
                    "type": "string",
                    "required": true
                  }
                ],
                "require_object": false
              },
              {
                "type": "variant_shape",
                "field": "api_payload",
                "paths": [
                  {
                    "json_path": "$.operation",
                    "type": "string",
                    "required": true
                  },
                  {
                    "json_path": "$.fundingAccount.id",
                    "type": "string",
                    "required": true
                  },
                  {
                    "json_path": "$.payments",
                    "type": "array",
                    "required": true
                  }
                ],
                "allowed_root_keys": [
                  "operation",
                  "processDate",
                  "fundingAccount",
                  "payments"
                ]
              }
            ]
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"batch id\",\n      \"name\": \"batch_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"prepared at\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"prepared by\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"reimbursement ids\",\n      \"name\": \"reimbursement_ids\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"employee usernames\",\n      \"name\": \"employee_usernames\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"payee external ids\",\n      \"name\": \"payee_external_ids\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"employee count\",\n      \"name\": \"employee_count\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"total amount\",\n      \"name\": \"total_amount\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"api operation\",\n      \"name\": \"api_operation\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"process date\",\n      \"name\": \"process_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"funding account type\",\n      \"name\": \"funding_account_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"funding account id\",\n      \"name\": \"funding_account_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"bill ids\",\n      \"name\": \"bill_ids\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"payment amounts by bill\",\n      \"name\": \"payment_amounts_by_bill\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"api payload hash\",\n      \"name\": \"api_payload_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"commitment status\",\n      \"name\": \"commitment_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Structured list of approved reimbursements gathered into this commitment.\",\n      \"name\": \"selected_reimbursements\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Bill.com API payload prepared by the agent for the outbound payment commitment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"One row per gathered outbound payment packet (not per reimbursement line). Rows are built from Approved employee_reimbursements files (governed by spec_source_links), then enriched with employee-directory fields: employee_usernames mirror Airlock/Snowflake identities from the requests; payee_external_ids hold provider-side ids (e.g. BILL userUuid or vendorId) resolved by joining to an employee roster\\u2014often different from the Snowflake username. Bill line / payment metadata (billIds, amounts, processDate, fundingAccount) aligns with BILL POST /v3/payments*; real calls still require MFA-trusted sessions and ids from the vendor system.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Employee reimbursement commitment\",\n    \"spec_name\": \"employee_reimbursement_commitment\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Prepared\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Prepared\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Prepared\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"bill_com_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"rules\": [\n    {\n      \"field\": \"selected_reimbursements\",\n      \"paths\": [\n        {\n          \"json_path\": \"$[0].reimbursement_id\",\n          \"required\": true,\n          \"type\": \"string\"\n        },\n        {\n          \"json_path\": \"$[0].employee_username\",\n          \"required\": true,\n          \"type\": \"string\"\n        },\n        {\n          \"json_path\": \"$[0].amount\",\n          \"required\": true,\n          \"type\": \"number\"\n        },\n        {\n          \"json_path\": \"$[0].currency\",\n          \"required\": true,\n          \"type\": \"string\"\n        }\n      ],\n      \"require_object\": false,\n      \"type\": \"variant_shape\"\n    },\n    {\n      \"allowed_root_keys\": [\n        \"operation\",\n        \"processDate\",\n        \"fundingAccount\",\n        \"payments\"\n      ],\n      \"field\": \"api_payload\",\n      \"paths\": [\n        {\n          \"json_path\": \"$.operation\",\n          \"required\": true,\n          \"type\": \"string\"\n        },\n        {\n          \"json_path\": \"$.fundingAccount.id\",\n          \"required\": true,\n          \"type\": \"string\"\n        },\n        {\n          \"json_path\": \"$.payments\",\n          \"required\": true,\n          \"type\": \"array\"\n        }\n      ],\n      \"type\": \"variant_shape\"\n    }\n  ],\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "bill_com"
          ],
          "relatedSystems": []
        },
        {
          "specName": "bill_com_api_payment_confirmations",
          "specConfig": {
            "column_config": [
              {
                "description": "confirmation id",
                "name": "confirmation_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "batch id",
                "name": "batch_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "bill com payment id",
                "name": "bill_com_payment_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "confirmed at",
                "name": "confirmed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "status",
                "name": "status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "total amount",
                "name": "total_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "raw event id",
                "name": "raw_event_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Raw or normalized Bill.com webhook/polling response retained for audit.",
                "name": "provider_response",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Payment confirmation observations received from Bill.com webhook or polling after reimbursement commitments are sent.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Bill.com API payment confirmations",
              "spec_name": "bill_com_api_payment_confirmations"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "file_type": "csv",
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "role_name": "bill_com_agent",
                  "access_level": "full_access"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            },
            "rules": [
              {
                "type": "variant_shape",
                "field": "provider_response",
                "paths": [
                  {
                    "json_path": "$.eventId",
                    "type": "string",
                    "required": true
                  },
                  {
                    "json_path": "$.paymentId",
                    "type": "string",
                    "required": true
                  },
                  {
                    "json_path": "$.status",
                    "type": "string",
                    "required": true
                  },
                  {
                    "json_path": "$.amount",
                    "type": "number",
                    "required": true
                  },
                  {
                    "json_path": "$.currency",
                    "type": "string",
                    "required": true
                  }
                ],
                "allowed_root_keys": [
                  "eventId",
                  "paymentId",
                  "status",
                  "amount",
                  "currency",
                  "batchId"
                ]
              }
            ]
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"confirmation id\",\n      \"name\": \"confirmation_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"batch id\",\n      \"name\": \"batch_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"bill com payment id\",\n      \"name\": \"bill_com_payment_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"confirmed at\",\n      \"name\": \"confirmed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"status\",\n      \"name\": \"status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"total amount\",\n      \"name\": \"total_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"raw event id\",\n      \"name\": \"raw_event_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Raw or normalized Bill.com webhook/polling response retained for audit.\",\n      \"name\": \"provider_response\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Payment confirmation observations received from Bill.com webhook or polling after reimbursement commitments are sent.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Bill.com API payment confirmations\",\n    \"spec_name\": \"bill_com_api_payment_confirmations\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"bill_com_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"rules\": [\n    {\n      \"allowed_root_keys\": [\n        \"eventId\",\n        \"paymentId\",\n        \"status\",\n        \"amount\",\n        \"currency\",\n        \"batchId\"\n      ],\n      \"field\": \"provider_response\",\n      \"paths\": [\n        {\n          \"json_path\": \"$.eventId\",\n          \"required\": true,\n          \"type\": \"string\"\n        },\n        {\n          \"json_path\": \"$.paymentId\",\n          \"required\": true,\n          \"type\": \"string\"\n        },\n        {\n          \"json_path\": \"$.status\",\n          \"required\": true,\n          \"type\": \"string\"\n        },\n        {\n          \"json_path\": \"$.amount\",\n          \"required\": true,\n          \"type\": \"number\"\n        },\n        {\n          \"json_path\": \"$.currency\",\n          \"required\": true,\n          \"type\": \"string\"\n        }\n      ],\n      \"type\": \"variant_shape\"\n    }\n  ],\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "bill_com"
          ],
          "relatedSystems": []
        },
        {
          "specName": "reimbursement_payment_reconciliation",
          "specConfig": {
            "column_config": [
              {
                "description": "reconciliation id",
                "name": "reconciliation_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "batch id",
                "name": "batch_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "confirmation id",
                "name": "confirmation_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "expected amount",
                "name": "expected_amount",
                "tests": [
                  "not_null"
                ],
                "type": "number"
              },
              {
                "description": "confirmed amount",
                "name": "confirmed_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "difference",
                "name": "difference",
                "tests": [],
                "type": "number"
              },
              {
                "description": "status",
                "name": "status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "finding",
                "name": "finding",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Structured matching details and comparison metadata.",
                "name": "reconciliation_details",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Reconciliation between employee reimbursement commitments sent to Bill.com and Bill.com payment confirmations.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Reimbursement payment reconciliation",
              "spec_name": "reimbursement_payment_reconciliation"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "file_type": "csv",
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "role_name": "bill_com_agent",
                  "access_level": "full_access"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            },
            "rules": [
              {
                "type": "variant_shape",
                "field": "reconciliation_details",
                "paths": [
                  {
                    "json_path": "$.matched_commitment_ids",
                    "type": "array",
                    "required": true
                  },
                  {
                    "json_path": "$.matched_confirmation_ids",
                    "type": "array",
                    "required": true
                  },
                  {
                    "json_path": "$.comparison.amount_delta",
                    "type": "number",
                    "required": true
                  },
                  {
                    "json_path": "$.comparison.currency_match",
                    "type": "boolean",
                    "required": true
                  }
                ],
                "allowed_root_keys": [
                  "matched_commitment_ids",
                  "matched_confirmation_ids",
                  "comparison"
                ]
              }
            ]
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"reconciliation id\",\n      \"name\": \"reconciliation_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"batch id\",\n      \"name\": \"batch_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"confirmation id\",\n      \"name\": \"confirmation_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"expected amount\",\n      \"name\": \"expected_amount\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"confirmed amount\",\n      \"name\": \"confirmed_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"difference\",\n      \"name\": \"difference\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"status\",\n      \"name\": \"status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"finding\",\n      \"name\": \"finding\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Structured matching details and comparison metadata.\",\n      \"name\": \"reconciliation_details\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Reconciliation between employee reimbursement commitments sent to Bill.com and Bill.com payment confirmations.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Reimbursement payment reconciliation\",\n    \"spec_name\": \"reimbursement_payment_reconciliation\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"bill_com_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"rules\": [\n    {\n      \"allowed_root_keys\": [\n        \"matched_commitment_ids\",\n        \"matched_confirmation_ids\",\n        \"comparison\"\n      ],\n      \"field\": \"reconciliation_details\",\n      \"paths\": [\n        {\n          \"json_path\": \"$.matched_commitment_ids\",\n          \"required\": true,\n          \"type\": \"array\"\n        },\n        {\n          \"json_path\": \"$.matched_confirmation_ids\",\n          \"required\": true,\n          \"type\": \"array\"\n        },\n        {\n          \"json_path\": \"$.comparison.amount_delta\",\n          \"required\": true,\n          \"type\": \"number\"\n        },\n        {\n          \"json_path\": \"$.comparison.currency_match\",\n          \"required\": true,\n          \"type\": \"boolean\"\n        }\n      ],\n      \"type\": \"variant_shape\"\n    }\n  ],\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [],
          "relatedSystems": [
            "bill_com"
          ]
        }
      ],
      "createSpecSourceLinks": [
        {
          "downstream_spec_name": "bill_com_updates",
          "source_spec_name": "employee_info",
          "link_options": {
            "reference_mode": "immutable_accept",
            "min_count": 1,
            "max_count": null,
            "allow_upload_instead": false,
            "allow_upload_in_addition": false,
            "details": {
              "intent": "Compare canonical employee_info against Bill.com API payee setup before approving Bill.com update proposals."
            }
          }
        },
        {
          "downstream_spec_name": "bill_com_updates",
          "source_spec_name": "bill_com_api_employee_payees",
          "link_options": {
            "reference_mode": "immutable_accept",
            "min_count": 1,
            "max_count": null,
            "allow_upload_instead": false,
            "allow_upload_in_addition": false,
            "details": {
              "intent": "Ground proposed Bill.com setup edits in the latest Bill.com API pull."
            }
          }
        },
        {
          "downstream_spec_name": "employee_reimbursement_commitment",
          "source_spec_name": "employee_reimbursements",
          "link_options": {
            "required_workflow_status": "Approved",
            "reference_mode": "immutable_accept",
            "min_count": 1,
            "max_count": null,
            "allow_upload_instead": false,
            "allow_upload_in_addition": false,
            "details": {
              "intent": "Gather Approved reimbursement files into an employee_reimbursement_commitment row; join employee_info and Bill.com API payees for provider ids before outbound payment APIs."
            }
          }
        },
        {
          "downstream_spec_name": "employee_reimbursement_commitment",
          "source_spec_name": "employee_info",
          "link_options": {
            "reference_mode": "immutable_accept",
            "min_count": 1,
            "max_count": null,
            "allow_upload_instead": false,
            "allow_upload_in_addition": false,
            "details": {
              "intent": "Resolve employee usernames from approved reimbursements to canonical employee records and Bill.com payee ids."
            }
          }
        },
        {
          "downstream_spec_name": "reimbursement_payment_reconciliation",
          "source_spec_name": "employee_reimbursement_commitment",
          "link_options": {
            "reference_mode": "immutable_accept",
            "min_count": 1,
            "max_count": null,
            "allow_upload_instead": false,
            "allow_upload_in_addition": false,
            "details": {
              "intent": "Compare approved/sent reimbursement commitments with Bill.com confirmations."
            }
          }
        },
        {
          "downstream_spec_name": "reimbursement_payment_reconciliation",
          "source_spec_name": "bill_com_api_payment_confirmations",
          "link_options": {
            "reference_mode": "immutable_accept",
            "min_count": 1,
            "max_count": null,
            "allow_upload_instead": false,
            "allow_upload_in_addition": false,
            "details": {
              "intent": "Use Bill.com payment confirmations as the external-system observation side of reimbursement payment reconciliation."
            }
          }
        }
      ],
      "systems": [],
      "relatedSystems": [
        "bill_com"
      ],
      "sourceDocs": [
        {
          "label": "BILL API Platform",
          "url": "https://developer.bill.com/docs"
        }
      ]
    },
    {
      "id": "shopify_operations_library",
      "type": "collection",
      "domains": [
        "commerce"
      ],
      "systems": [
        "shopify"
      ],
      "version": "1.0.0",
      "summary": "Direct Shopify Admin API observation and commitment specs for products, orders, customers, inventory, fulfillment, refunds, discounts, payouts, and governed store changes.",
      "coverageStatus": "Extended",
      "coverageNotes": "Direct Shopify specs only: observations mirror Shopify Admin API or Shopify Payments resources, and commitments prepare approved outbound Shopify Admin API changes. Cross-system findings and gap-fillers live in reconciliation or commerce collections.",
      "sourceDocs": [
        {
          "label": "Shopify Admin GraphQL API",
          "url": "https://shopify.dev/docs/api/admin-graphql"
        },
        {
          "label": "Product object",
          "url": "https://shopify.dev/docs/api/admin-graphql/latest/objects/product"
        },
        {
          "label": "Order object",
          "url": "https://shopify.dev/docs/api/admin-graphql/latest/objects/order"
        },
        {
          "label": "Customer object",
          "url": "https://shopify.dev/docs/api/admin-graphql/latest/objects/customer"
        },
        {
          "label": "InventoryLevel object",
          "url": "https://shopify.dev/docs/api/admin-graphql/latest/objects/inventorylevel"
        },
        {
          "label": "Fulfillment object",
          "url": "https://shopify.dev/docs/api/admin-graphql/latest/objects/fulfillment"
        },
        {
          "label": "Refund object",
          "url": "https://shopify.dev/docs/api/admin-graphql/latest/objects/refund"
        },
        {
          "label": "Location object",
          "url": "https://shopify.dev/docs/api/admin-graphql/latest/objects/location"
        },
        {
          "label": "DraftOrder object",
          "url": "https://shopify.dev/docs/api/admin-graphql/latest/objects/draftorder"
        },
        {
          "label": "Return object",
          "url": "https://shopify.dev/docs/api/admin-graphql/latest/objects/return"
        },
        {
          "label": "Collection object",
          "url": "https://shopify.dev/docs/api/admin-graphql/latest/objects/collection"
        },
        {
          "label": "Shopify Payments payout resource",
          "url": "https://shopify.dev/docs/api/admin-rest/latest/resources/shopify_payments_payout"
        }
      ],
      "nextObjects": [
        "fulfillment_orders",
        "markets",
        "metaobjects",
        "metafields",
        "customer_segments",
        "webhook_events"
      ],
      "omittedObjects": [
        "generic reconciliation findings",
        "non-Shopify gap fillers",
        "analytics reports",
        "app billing",
        "themes and online-store assets"
      ],
      "needs": [
        "A Shopify agent/operator role. The generated calls use shopify_agent."
      ],
      "usefulFor": [
        "Catalog memory",
        "Order and fulfillment review",
        "Inventory reconciliation",
        "Refund review",
        "Governed price/catalog/inventory changes"
      ],
      "extendWith": [
        "Additional reconciliation specs for margin, catalog drift, or fulfillment exceptions",
        "Links from accepted findings into outbound commitments"
      ],
      "searchTerms": [
        "shopify",
        "products",
        "orders",
        "customers",
        "inventory",
        "fulfillment",
        "refunds",
        "discounts",
        "payouts",
        "price changes"
      ],
      "links": [
        {
          "from": "shopify_agent_api_price_changes",
          "to": "shopify_api_products",
          "kind": "source_link",
          "description": "Price-change proposals cite observed product or variant data."
        },
        {
          "from": "shopify_agent_api_refund_proposals",
          "to": "shopify_api_orders",
          "kind": "source_link",
          "description": "Refund proposals cite the order observation they intend to modify."
        },
        {
          "from": "shopify_agent_api_inventory_adjustments",
          "to": "shopify_api_inventory_levels",
          "kind": "source_link",
          "description": "Inventory adjustments cite the latest inventory-level observation."
        }
      ],
      "installedSpecs": [
        {
          "id": "shopify_api_products",
          "domain": "Observation",
          "purpose": "Product and variant catalog memory.",
          "systems": [
            "shopify"
          ]
        },
        {
          "id": "shopify_api_orders",
          "domain": "Observation",
          "purpose": "Order, fulfillment, and commerce-event memory.",
          "systems": [
            "shopify"
          ]
        },
        {
          "id": "shopify_api_customers",
          "domain": "Observation",
          "purpose": "Customer identity and lifecycle observations.",
          "systems": [
            "shopify"
          ]
        },
        {
          "id": "shopify_api_inventory_levels",
          "domain": "Observation",
          "purpose": "Inventory quantities by item and location.",
          "systems": [
            "shopify"
          ]
        },
        {
          "id": "shopify_api_fulfillments",
          "domain": "Observation",
          "purpose": "Shipment and fulfillment status observations.",
          "systems": [
            "shopify"
          ]
        },
        {
          "id": "shopify_api_refunds",
          "domain": "Observation",
          "purpose": "Refund and restock observations.",
          "systems": [
            "shopify"
          ]
        },
        {
          "id": "shopify_api_discounts",
          "domain": "Observation",
          "purpose": "Discount and promotion observations.",
          "systems": [
            "shopify"
          ]
        },
        {
          "id": "shopify_api_payouts",
          "domain": "Observation",
          "purpose": "Settlement and payout observations.",
          "systems": [
            "shopify"
          ]
        },
        {
          "id": "shopify_agent_api_price_changes",
          "domain": "Commitment workflow",
          "purpose": "Governed variant price changes.",
          "systems": [
            "shopify"
          ]
        },
        {
          "id": "shopify_agent_api_catalog_updates",
          "domain": "Commitment workflow",
          "purpose": "Governed catalog updates.",
          "systems": [
            "shopify"
          ]
        },
        {
          "id": "shopify_agent_api_inventory_adjustments",
          "domain": "Commitment workflow",
          "purpose": "Governed inventory adjustments.",
          "systems": [
            "shopify"
          ]
        },
        {
          "id": "shopify_agent_api_refund_proposals",
          "domain": "Commitment workflow",
          "purpose": "Governed refund proposals.",
          "systems": [
            "shopify"
          ]
        },
        {
          "id": "shopify_api_shop",
          "domain": "Observation",
          "purpose": "Shop settings and business identity observations.",
          "systems": [
            "shopify"
          ]
        },
        {
          "id": "shopify_api_locations",
          "domain": "Observation",
          "purpose": "Location and fulfillment routing observations.",
          "systems": [
            "shopify"
          ]
        },
        {
          "id": "shopify_api_order_transactions",
          "domain": "Observation",
          "purpose": "Payment/refund transaction observations.",
          "systems": [
            "shopify"
          ]
        },
        {
          "id": "shopify_api_returns",
          "domain": "Observation",
          "purpose": "Return and reverse-logistics observations.",
          "systems": [
            "shopify"
          ]
        },
        {
          "id": "shopify_api_draft_orders",
          "domain": "Observation",
          "purpose": "Draft order and quote observations.",
          "systems": [
            "shopify"
          ]
        },
        {
          "id": "shopify_api_abandoned_checkouts",
          "domain": "Observation",
          "purpose": "Abandoned checkout observations.",
          "systems": [
            "shopify"
          ]
        },
        {
          "id": "shopify_api_collections",
          "domain": "Observation",
          "purpose": "Collection and merchandising observations.",
          "systems": [
            "shopify"
          ]
        }
      ],
      "createSpecPayloads": [
        {
          "specName": "shopify_api_products",
          "specConfig": {
            "column_config": [
              {
                "description": "product id",
                "name": "product_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "variant id",
                "name": "variant_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "sku",
                "name": "sku",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "title",
                "name": "title",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "variant title",
                "name": "variant_title",
                "tests": [],
                "type": "string"
              },
              {
                "description": "weight",
                "name": "weight",
                "tests": [],
                "type": "number"
              },
              {
                "description": "weight unit",
                "name": "weight_unit",
                "tests": [],
                "type": "string"
              },
              {
                "description": "price",
                "name": "price",
                "tests": [
                  "not_null"
                ],
                "type": "number"
              },
              {
                "description": "compare at price",
                "name": "compare_at_price",
                "tests": [],
                "type": "number"
              },
              {
                "description": "inventory item id",
                "name": "inventory_item_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "barcode",
                "name": "barcode",
                "tests": [],
                "type": "string"
              },
              {
                "description": "requires shipping",
                "name": "requires_shipping",
                "tests": [],
                "type": "boolean"
              },
              {
                "description": "taxable",
                "name": "taxable",
                "tests": [],
                "type": "boolean"
              },
              {
                "description": "vendor",
                "name": "vendor",
                "tests": [],
                "type": "string"
              },
              {
                "description": "product type",
                "name": "product_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "tags",
                "name": "tags",
                "tests": [],
                "type": "string"
              },
              {
                "description": "status",
                "name": "status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Product and variant catalog observations pulled from the Shopify API.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Shopify API products",
              "spec_name": "shopify_api_products"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "file_type": "csv",
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "role_name": "commerce_agent",
                  "access_level": "full_access"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"product id\",\n      \"name\": \"product_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"variant id\",\n      \"name\": \"variant_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"sku\",\n      \"name\": \"sku\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"title\",\n      \"name\": \"title\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"variant title\",\n      \"name\": \"variant_title\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"weight\",\n      \"name\": \"weight\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"weight unit\",\n      \"name\": \"weight_unit\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"price\",\n      \"name\": \"price\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"compare at price\",\n      \"name\": \"compare_at_price\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"inventory item id\",\n      \"name\": \"inventory_item_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"barcode\",\n      \"name\": \"barcode\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"requires shipping\",\n      \"name\": \"requires_shipping\",\n      \"tests\": [],\n      \"type\": \"boolean\"\n    },\n    {\n      \"description\": \"taxable\",\n      \"name\": \"taxable\",\n      \"tests\": [],\n      \"type\": \"boolean\"\n    },\n    {\n      \"description\": \"vendor\",\n      \"name\": \"vendor\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"product type\",\n      \"name\": \"product_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"tags\",\n      \"name\": \"tags\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"status\",\n      \"name\": \"status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Product and variant catalog observations pulled from the Shopify API.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Shopify API products\",\n    \"spec_name\": \"shopify_api_products\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"commerce_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "shopify"
          ]
        },
        {
          "specName": "shopify_api_orders",
          "specConfig": {
            "column_config": [
              {
                "description": "order id",
                "name": "order_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "order date",
                "name": "order_date",
                "tests": [
                  "not_null"
                ],
                "type": "date",
                "format": "%Y-%m-%d"
              },
              {
                "description": "customer id",
                "name": "customer_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "sku",
                "name": "sku",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "quantity",
                "name": "quantity",
                "tests": [
                  "not_null"
                ],
                "type": "integer"
              },
              {
                "description": "subtotal price",
                "name": "subtotal_price",
                "tests": [
                  "not_null"
                ],
                "type": "number"
              },
              {
                "description": "total shipping price",
                "name": "total_shipping_price",
                "tests": [],
                "type": "number"
              },
              {
                "description": "total discounts",
                "name": "total_discounts",
                "tests": [],
                "type": "number"
              },
              {
                "description": "fulfillment status",
                "name": "fulfillment_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "ship region",
                "name": "ship_region",
                "tests": [],
                "type": "string"
              },
              {
                "description": "tags",
                "name": "tags",
                "tests": [],
                "type": "string"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Order-line observations pulled from the Shopify API for margin, shipping, fulfillment, and regional profitability analysis.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Shopify API orders",
              "spec_name": "shopify_api_orders"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "file_type": "csv",
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "role_name": "commerce_agent",
                  "access_level": "full_access"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"order id\",\n      \"name\": \"order_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"order date\",\n      \"format\": \"%Y-%m-%d\",\n      \"name\": \"order_date\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"date\"\n    },\n    {\n      \"description\": \"customer id\",\n      \"name\": \"customer_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"sku\",\n      \"name\": \"sku\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"quantity\",\n      \"name\": \"quantity\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"subtotal price\",\n      \"name\": \"subtotal_price\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"total shipping price\",\n      \"name\": \"total_shipping_price\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"total discounts\",\n      \"name\": \"total_discounts\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"fulfillment status\",\n      \"name\": \"fulfillment_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"ship region\",\n      \"name\": \"ship_region\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"tags\",\n      \"name\": \"tags\",\n      \"tests\": [],\n      \"type\": \"string\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Order-line observations pulled from the Shopify API for margin, shipping, fulfillment, and regional profitability analysis.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Shopify API orders\",\n    \"spec_name\": \"shopify_api_orders\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"commerce_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "shopify"
          ]
        },
        {
          "specName": "shopify_api_customers",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "customer_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Shop domain",
                "name": "shop_domain",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed or tokenized email reference",
                "name": "email_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Order count",
                "name": "orders_count",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Total spent",
                "name": "total_spent",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Customer observations for identity, segmentation, and service follow-up.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Shopify API customers",
              "spec_name": "shopify_api_customers"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "shopify_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"customer_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Shop domain\",\n      \"name\": \"shop_domain\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed or tokenized email reference\",\n      \"name\": \"email_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Order count\",\n      \"name\": \"orders_count\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Total spent\",\n      \"name\": \"total_spent\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Customer observations for identity, segmentation, and service follow-up.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Shopify API customers\",\n    \"spec_name\": \"shopify_api_customers\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"shopify_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "shopify"
          ]
        },
        {
          "specName": "shopify_api_inventory_levels",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "inventory_level_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Inventory item id",
                "name": "inventory_item_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Location id",
                "name": "location_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "SKU",
                "name": "sku",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Available quantity",
                "name": "available_quantity",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Inventory quantity observations by inventory item and location.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Shopify API inventory levels",
              "spec_name": "shopify_api_inventory_levels"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "shopify_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"inventory_level_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Inventory item id\",\n      \"name\": \"inventory_item_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Location id\",\n      \"name\": \"location_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"SKU\",\n      \"name\": \"sku\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Available quantity\",\n      \"name\": \"available_quantity\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Inventory quantity observations by inventory item and location.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Shopify API inventory levels\",\n    \"spec_name\": \"shopify_api_inventory_levels\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"shopify_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "shopify"
          ]
        },
        {
          "specName": "shopify_api_fulfillments",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "fulfillment_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Order id",
                "name": "order_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Tracking company",
                "name": "tracking_company",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Tracking number",
                "name": "tracking_number",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Shipment status",
                "name": "shipment_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Fulfillment observations for shipment, carrier, tracking, and delivery status.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Shopify API fulfillments",
              "spec_name": "shopify_api_fulfillments"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "shopify_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"fulfillment_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Order id\",\n      \"name\": \"order_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Tracking company\",\n      \"name\": \"tracking_company\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Tracking number\",\n      \"name\": \"tracking_number\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Shipment status\",\n      \"name\": \"shipment_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Fulfillment observations for shipment, carrier, tracking, and delivery status.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Shopify API fulfillments\",\n    \"spec_name\": \"shopify_api_fulfillments\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"shopify_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "shopify"
          ]
        },
        {
          "specName": "shopify_api_refunds",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "refund_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Order id",
                "name": "order_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Refund creation timestamp",
                "name": "created_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Refund amount",
                "name": "total_refunded",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Restock action summary",
                "name": "restock_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Refund observations including refunded line items, transactions, and restock intent.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Shopify API refunds",
              "spec_name": "shopify_api_refunds"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "shopify_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"refund_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Order id\",\n      \"name\": \"order_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Refund creation timestamp\",\n      \"name\": \"created_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Refund amount\",\n      \"name\": \"total_refunded\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Restock action summary\",\n      \"name\": \"restock_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Refund observations including refunded line items, transactions, and restock intent.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Shopify API refunds\",\n    \"spec_name\": \"shopify_api_refunds\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"shopify_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "shopify"
          ]
        },
        {
          "specName": "shopify_api_discounts",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "discount_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Discount title",
                "name": "title",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Discount code",
                "name": "discount_code",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Start timestamp",
                "name": "starts_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "End timestamp",
                "name": "ends_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Usage count",
                "name": "usage_count",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Discount and promotion observations for margin and campaign analysis.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Shopify API discounts",
              "spec_name": "shopify_api_discounts"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "shopify_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"discount_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Discount title\",\n      \"name\": \"title\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Discount code\",\n      \"name\": \"discount_code\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Start timestamp\",\n      \"name\": \"starts_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"End timestamp\",\n      \"name\": \"ends_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Usage count\",\n      \"name\": \"usage_count\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Discount and promotion observations for margin and campaign analysis.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Shopify API discounts\",\n    \"spec_name\": \"shopify_api_discounts\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"shopify_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "shopify"
          ]
        },
        {
          "specName": "shopify_api_payouts",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "payout_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Paid timestamp",
                "name": "paid_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Payout status",
                "name": "status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Payout amount",
                "name": "amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Payout observations for settlement, cash, and reconciliation workflows.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Shopify API payouts",
              "spec_name": "shopify_api_payouts"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "shopify_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"payout_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Paid timestamp\",\n      \"name\": \"paid_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Payout status\",\n      \"name\": \"status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Payout amount\",\n      \"name\": \"amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Payout observations for settlement, cash, and reconciliation workflows.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Shopify API payouts\",\n    \"spec_name\": \"shopify_api_payouts\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"shopify_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "shopify"
          ]
        },
        {
          "specName": "shopify_agent_api_price_changes",
          "specConfig": {
            "column_config": [
              {
                "description": "change id",
                "name": "change_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "variant id",
                "name": "variant_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "sku",
                "name": "sku",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "current price",
                "name": "current_price",
                "tests": [
                  "not_null"
                ],
                "type": "number"
              },
              {
                "description": "proposed price",
                "name": "proposed_price",
                "tests": [
                  "not_null"
                ],
                "type": "number"
              },
              {
                "description": "reason",
                "name": "reason",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "expected margin lift",
                "name": "expected_margin_lift",
                "tests": [],
                "type": "number"
              },
              {
                "description": "source finding id",
                "name": "source_finding_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "decision status",
                "name": "decision_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Draft Shopify variant price changes proposed by an agent and approved by a human before outbound Shopify API sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Shopify agent API price changes",
              "spec_name": "shopify_agent_api_price_changes",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Draft",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "file_type": "csv",
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "role_name": "commerce_agent",
                  "access_level": "full_access"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"change id\",\n      \"name\": \"change_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"variant id\",\n      \"name\": \"variant_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"sku\",\n      \"name\": \"sku\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"current price\",\n      \"name\": \"current_price\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"proposed price\",\n      \"name\": \"proposed_price\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"reason\",\n      \"name\": \"reason\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"expected margin lift\",\n      \"name\": \"expected_margin_lift\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"source finding id\",\n      \"name\": \"source_finding_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"decision status\",\n      \"name\": \"decision_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Draft Shopify variant price changes proposed by an agent and approved by a human before outbound Shopify API sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Shopify agent API price changes\",\n    \"spec_name\": \"shopify_agent_api_price_changes\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"commerce_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "shopify"
          ]
        },
        {
          "specName": "shopify_agent_api_catalog_updates",
          "specConfig": {
            "column_config": [
              {
                "description": "update id",
                "name": "update_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "variant id",
                "name": "variant_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "sku",
                "name": "sku",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "update type",
                "name": "update_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "current value",
                "name": "current_value",
                "tests": [],
                "type": "string"
              },
              {
                "description": "proposed value",
                "name": "proposed_value",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "reason",
                "name": "reason",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "source issue id",
                "name": "source_issue_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "decision status",
                "name": "decision_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "approved by",
                "name": "approved_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "approved at",
                "name": "approved_at",
                "tests": [],
                "type": "string"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Draft Shopify product or variant catalog updates proposed by an agent and approved by a human before outbound Shopify API sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Shopify agent API catalog updates",
              "spec_name": "shopify_agent_api_catalog_updates",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Draft",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "file_type": "csv",
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "role_name": "commerce_agent",
                  "access_level": "full_access"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"update id\",\n      \"name\": \"update_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"variant id\",\n      \"name\": \"variant_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"sku\",\n      \"name\": \"sku\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"update type\",\n      \"name\": \"update_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"current value\",\n      \"name\": \"current_value\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"proposed value\",\n      \"name\": \"proposed_value\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"reason\",\n      \"name\": \"reason\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"source issue id\",\n      \"name\": \"source_issue_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"decision status\",\n      \"name\": \"decision_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"approved by\",\n      \"name\": \"approved_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"approved at\",\n      \"name\": \"approved_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Draft Shopify product or variant catalog updates proposed by an agent and approved by a human before outbound Shopify API sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Shopify agent API catalog updates\",\n    \"spec_name\": \"shopify_agent_api_catalog_updates\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"commerce_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "shopify"
          ]
        },
        {
          "specName": "shopify_agent_api_inventory_adjustments",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "inventory_adjustment_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "inventory_item_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Location id",
                "name": "location_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Current quantity",
                "name": "current_quantity",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Proposed quantity",
                "name": "proposed_quantity",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed inventory adjustments before outbound Shopify sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Shopify agent API inventory adjustments",
              "spec_name": "shopify_agent_api_inventory_adjustments",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "shopify_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"inventory_adjustment_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"inventory_item_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Location id\",\n      \"name\": \"location_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Current quantity\",\n      \"name\": \"current_quantity\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Proposed quantity\",\n      \"name\": \"proposed_quantity\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed inventory adjustments before outbound Shopify sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Shopify agent API inventory adjustments\",\n    \"spec_name\": \"shopify_agent_api_inventory_adjustments\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"shopify_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "shopify"
          ]
        },
        {
          "specName": "shopify_agent_api_refund_proposals",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "refund_proposal_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "order_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Proposed refund amount",
                "name": "refund_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Whether to notify the customer",
                "name": "notify_customer",
                "tests": [],
                "type": "boolean"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed refund proposals before outbound Shopify refund creation.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Shopify agent API refund proposals",
              "spec_name": "shopify_agent_api_refund_proposals",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "shopify_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"refund_proposal_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"order_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Proposed refund amount\",\n      \"name\": \"refund_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Whether to notify the customer\",\n      \"name\": \"notify_customer\",\n      \"tests\": [],\n      \"type\": \"boolean\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed refund proposals before outbound Shopify refund creation.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Shopify agent API refund proposals\",\n    \"spec_name\": \"shopify_agent_api_refund_proposals\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"shopify_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "shopify"
          ]
        },
        {
          "specName": "shopify_api_shop",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "shop_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Shop domain",
                "name": "shop_domain",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Shop name",
                "name": "name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Primary locale",
                "name": "primary_locale",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Shop currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Shop time zone",
                "name": "timezone",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Shop-level configuration and business identity observations.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Shopify API shop",
              "spec_name": "shopify_api_shop"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "shopify_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"shop_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Shop domain\",\n      \"name\": \"shop_domain\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Shop name\",\n      \"name\": \"name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Primary locale\",\n      \"name\": \"primary_locale\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Shop currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Shop time zone\",\n      \"name\": \"timezone\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Shop-level configuration and business identity observations.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Shopify API shop\",\n    \"spec_name\": \"shopify_api_shop\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"shopify_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "shopify"
          ]
        },
        {
          "specName": "shopify_api_locations",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "location_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Shop domain",
                "name": "shop_domain",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Location name",
                "name": "location_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Active location flag",
                "name": "active",
                "tests": [],
                "type": "boolean"
              },
              {
                "description": "Whether this location fulfills online orders",
                "name": "fulfills_online_orders",
                "tests": [],
                "type": "boolean"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Location observations for inventory, fulfillment, and operational routing.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Shopify API locations",
              "spec_name": "shopify_api_locations"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "shopify_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"location_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Shop domain\",\n      \"name\": \"shop_domain\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Location name\",\n      \"name\": \"location_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Active location flag\",\n      \"name\": \"active\",\n      \"tests\": [],\n      \"type\": \"boolean\"\n    },\n    {\n      \"description\": \"Whether this location fulfills online orders\",\n      \"name\": \"fulfills_online_orders\",\n      \"tests\": [],\n      \"type\": \"boolean\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Location observations for inventory, fulfillment, and operational routing.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Shopify API locations\",\n    \"spec_name\": \"shopify_api_locations\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"shopify_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "shopify"
          ]
        },
        {
          "specName": "shopify_api_order_transactions",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "transaction_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Order id",
                "name": "order_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Transaction kind",
                "name": "kind",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Payment gateway",
                "name": "gateway",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Transaction amount",
                "name": "amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Payment/refund transaction observations tied to Shopify orders.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Shopify API order transactions",
              "spec_name": "shopify_api_order_transactions"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "shopify_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"transaction_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Order id\",\n      \"name\": \"order_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Transaction kind\",\n      \"name\": \"kind\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Payment gateway\",\n      \"name\": \"gateway\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Transaction amount\",\n      \"name\": \"amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Payment/refund transaction observations tied to Shopify orders.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Shopify API order transactions\",\n    \"spec_name\": \"shopify_api_order_transactions\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"shopify_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "shopify"
          ]
        },
        {
          "specName": "shopify_api_returns",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "return_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Order id",
                "name": "order_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Return status",
                "name": "status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Return line count",
                "name": "return_line_count",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Return request timestamp",
                "name": "requested_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Return observations for reverse logistics and refund readiness.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Shopify API returns",
              "spec_name": "shopify_api_returns"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "shopify_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"return_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Order id\",\n      \"name\": \"order_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Return status\",\n      \"name\": \"status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Return line count\",\n      \"name\": \"return_line_count\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Return request timestamp\",\n      \"name\": \"requested_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Return observations for reverse logistics and refund readiness.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Shopify API returns\",\n    \"spec_name\": \"shopify_api_returns\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"shopify_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "shopify"
          ]
        },
        {
          "specName": "shopify_api_draft_orders",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "draft_order_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Customer id",
                "name": "customer_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Draft order status",
                "name": "status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Draft order total",
                "name": "total_price",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Draft-order observations for quotes, manual orders, and B2B/phone-sales workflows.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Shopify API draft orders",
              "spec_name": "shopify_api_draft_orders"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "shopify_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"draft_order_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Customer id\",\n      \"name\": \"customer_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Draft order status\",\n      \"name\": \"status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Draft order total\",\n      \"name\": \"total_price\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Draft-order observations for quotes, manual orders, and B2B/phone-sales workflows.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Shopify API draft orders\",\n    \"spec_name\": \"shopify_api_draft_orders\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"shopify_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "shopify"
          ]
        },
        {
          "specName": "shopify_api_abandoned_checkouts",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "checkout_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed or tokenized email reference",
                "name": "email_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Checkout creation timestamp",
                "name": "created_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Abandonment timestamp",
                "name": "abandoned_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Checkout total",
                "name": "total_price",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Abandoned checkout observations for recovery, funnel analysis, and agent follow-up.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Shopify API abandoned checkouts",
              "spec_name": "shopify_api_abandoned_checkouts"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "shopify_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"checkout_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed or tokenized email reference\",\n      \"name\": \"email_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Checkout creation timestamp\",\n      \"name\": \"created_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Abandonment timestamp\",\n      \"name\": \"abandoned_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Checkout total\",\n      \"name\": \"total_price\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Abandoned checkout observations for recovery, funnel analysis, and agent follow-up.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Shopify API abandoned checkouts\",\n    \"spec_name\": \"shopify_api_abandoned_checkouts\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"shopify_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "shopify"
          ]
        },
        {
          "specName": "shopify_api_collections",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "collection_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Collection title",
                "name": "title",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Collection handle",
                "name": "handle",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Collection type",
                "name": "collection_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Published scope",
                "name": "published_scope",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Collection observations for merchandising and catalog organization.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Shopify API collections",
              "spec_name": "shopify_api_collections"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "shopify_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"collection_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Collection title\",\n      \"name\": \"title\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Collection handle\",\n      \"name\": \"handle\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Collection type\",\n      \"name\": \"collection_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Published scope\",\n      \"name\": \"published_scope\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Collection observations for merchandising and catalog organization.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Shopify API collections\",\n    \"spec_name\": \"shopify_api_collections\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"shopify_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "shopify"
          ]
        }
      ]
    },
    {
      "id": "etsy_marketplace_library",
      "type": "collection",
      "domains": [
        "commerce"
      ],
      "systems": [
        "etsy"
      ],
      "version": "1.0.0",
      "summary": "Etsy observation and commitment specs for listings, listing inventory, receipts, transactions, payment ledger entries, and governed listing/inventory updates.",
      "coverageStatus": "Core",
      "coverageNotes": "Covers shop, listing, receipt, transaction, inventory, ledger, shipping, review, and governed listing updates. Deeper seller operations can be layered in later.",
      "sourceDocs": [
        {
          "label": "Etsy Open API reference",
          "url": "https://developer.etsy.com/documentation/reference/"
        }
      ],
      "nextObjects": [
        "taxonomy_nodes",
        "seller_taxonomy_nodes",
        "listing_images",
        "listing_variation_images",
        "production_partners",
        "shop_holidays"
      ],
      "omittedObjects": [
        "OAuth/token management",
        "buyer private data beyond safe references"
      ],
      "needs": [
        "An Etsy agent/operator role. The generated calls use etsy_agent."
      ],
      "usefulFor": [
        "Marketplace listing review",
        "Receipt and transaction memory",
        "Shop payment ledger reporting",
        "Governed listing and inventory edits"
      ],
      "extendWith": [
        "Listing-quality reviews",
        "Fee and tax reconciliation",
        "Cross-marketplace catalog matching"
      ],
      "searchTerms": [
        "etsy",
        "listings",
        "inventory",
        "receipts",
        "transactions",
        "payment ledger",
        "marketplace"
      ],
      "links": [
        {
          "from": "etsy_agent_api_listing_updates",
          "to": "etsy_api_listings",
          "kind": "source_link",
          "description": "Listing update proposals cite the latest listing observation."
        },
        {
          "from": "etsy_agent_api_inventory_updates",
          "to": "etsy_api_listing_inventory",
          "kind": "source_link",
          "description": "Inventory update proposals cite listing inventory observations."
        }
      ],
      "installedSpecs": [
        {
          "id": "etsy_api_listings",
          "domain": "Observation",
          "purpose": "Shop listing memory.",
          "systems": [
            "etsy"
          ]
        },
        {
          "id": "etsy_api_listing_inventory",
          "domain": "Observation",
          "purpose": "Listing inventory and offering memory.",
          "systems": [
            "etsy"
          ]
        },
        {
          "id": "etsy_api_receipts",
          "domain": "Observation",
          "purpose": "Sales receipt observations.",
          "systems": [
            "etsy"
          ]
        },
        {
          "id": "etsy_api_transactions",
          "domain": "Observation",
          "purpose": "Line-level transaction observations.",
          "systems": [
            "etsy"
          ]
        },
        {
          "id": "etsy_api_payment_ledger_entries",
          "domain": "Observation",
          "purpose": "Shop payment ledger observations.",
          "systems": [
            "etsy"
          ]
        },
        {
          "id": "etsy_agent_api_listing_updates",
          "domain": "Commitment workflow",
          "purpose": "Governed listing updates.",
          "systems": [
            "etsy"
          ]
        },
        {
          "id": "etsy_agent_api_inventory_updates",
          "domain": "Commitment workflow",
          "purpose": "Governed listing inventory updates.",
          "systems": [
            "etsy"
          ]
        },
        {
          "id": "etsy_api_shops",
          "domain": "Observation",
          "purpose": "Shop configuration observations.",
          "systems": [
            "etsy"
          ]
        },
        {
          "id": "etsy_api_shop_sections",
          "domain": "Observation",
          "purpose": "Shop section observations.",
          "systems": [
            "etsy"
          ]
        },
        {
          "id": "etsy_api_shipping_profiles",
          "domain": "Observation",
          "purpose": "Shipping profile observations.",
          "systems": [
            "etsy"
          ]
        },
        {
          "id": "etsy_api_reviews",
          "domain": "Observation",
          "purpose": "Shop and listing review observations.",
          "systems": [
            "etsy"
          ]
        }
      ],
      "createSpecPayloads": [
        {
          "specName": "etsy_api_listings",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "listing_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Shop id",
                "name": "shop_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Listing title",
                "name": "title",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Listing state",
                "name": "state",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Listing price",
                "name": "price",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Available quantity",
                "name": "quantity",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Listing observations for shop catalog, listing state, tags, and pricing.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Etsy API listings",
              "spec_name": "etsy_api_listings"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "etsy_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"listing_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Shop id\",\n      \"name\": \"shop_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Listing title\",\n      \"name\": \"title\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Listing state\",\n      \"name\": \"state\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Listing price\",\n      \"name\": \"price\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Available quantity\",\n      \"name\": \"quantity\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Listing observations for shop catalog, listing state, tags, and pricing.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Etsy API listings\",\n    \"spec_name\": \"etsy_api_listings\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"etsy_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "etsy"
          ]
        },
        {
          "specName": "etsy_api_listing_inventory",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "listing_inventory_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Listing id",
                "name": "listing_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "SKU",
                "name": "sku",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Number of offerings",
                "name": "offering_count",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Quantity available",
                "name": "quantity_available",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Listing inventory observations for SKUs, offerings, quantities, and prices.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Etsy API listing inventory",
              "spec_name": "etsy_api_listing_inventory"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "etsy_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"listing_inventory_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Listing id\",\n      \"name\": \"listing_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"SKU\",\n      \"name\": \"sku\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Number of offerings\",\n      \"name\": \"offering_count\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Quantity available\",\n      \"name\": \"quantity_available\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Listing inventory observations for SKUs, offerings, quantities, and prices.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Etsy API listing inventory\",\n    \"spec_name\": \"etsy_api_listing_inventory\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"etsy_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "etsy"
          ]
        },
        {
          "specName": "etsy_api_receipts",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "receipt_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Shop id",
                "name": "shop_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Buyer user id",
                "name": "buyer_user_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Receipt creation timestamp",
                "name": "created_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Receipt status",
                "name": "status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Receipt total",
                "name": "total_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Sales receipt observations for orders, fulfillment, buyer-facing totals, and shipping.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Etsy API receipts",
              "spec_name": "etsy_api_receipts"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "etsy_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"receipt_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Shop id\",\n      \"name\": \"shop_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Buyer user id\",\n      \"name\": \"buyer_user_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Receipt creation timestamp\",\n      \"name\": \"created_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Receipt status\",\n      \"name\": \"status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Receipt total\",\n      \"name\": \"total_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Sales receipt observations for orders, fulfillment, buyer-facing totals, and shipping.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Etsy API receipts\",\n    \"spec_name\": \"etsy_api_receipts\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"etsy_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "etsy"
          ]
        },
        {
          "specName": "etsy_api_transactions",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "transaction_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Receipt id",
                "name": "receipt_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Listing id",
                "name": "listing_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "SKU",
                "name": "sku",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Quantity",
                "name": "quantity",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Line price",
                "name": "price",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Line-level sales observations for receipts, listings, SKUs, quantity, and price.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Etsy API transactions",
              "spec_name": "etsy_api_transactions"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "etsy_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"transaction_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Receipt id\",\n      \"name\": \"receipt_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Listing id\",\n      \"name\": \"listing_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"SKU\",\n      \"name\": \"sku\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Quantity\",\n      \"name\": \"quantity\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Line price\",\n      \"name\": \"price\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Line-level sales observations for receipts, listings, SKUs, quantity, and price.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Etsy API transactions\",\n    \"spec_name\": \"etsy_api_transactions\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"etsy_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "etsy"
          ]
        },
        {
          "specName": "etsy_api_payment_ledger_entries",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "ledger_entry_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Shop id",
                "name": "shop_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Ledger id",
                "name": "ledger_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Entry date",
                "name": "entry_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Entry amount",
                "name": "amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Running balance",
                "name": "running_balance",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Read-only payment account ledger observations for fees, taxes, payments, and balance movement.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Etsy API payment ledger entries",
              "spec_name": "etsy_api_payment_ledger_entries"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "etsy_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"ledger_entry_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Shop id\",\n      \"name\": \"shop_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Ledger id\",\n      \"name\": \"ledger_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Entry date\",\n      \"name\": \"entry_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Entry amount\",\n      \"name\": \"amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Running balance\",\n      \"name\": \"running_balance\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Read-only payment account ledger observations for fees, taxes, payments, and balance movement.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Etsy API payment ledger entries\",\n    \"spec_name\": \"etsy_api_payment_ledger_entries\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"etsy_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "etsy"
          ]
        },
        {
          "specName": "etsy_agent_api_listing_updates",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "listing_update_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "listing_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Listing field name",
                "name": "field_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Current value",
                "name": "current_value",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Proposed value",
                "name": "proposed_value",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed listing update proposals before outbound Etsy listing edits.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Etsy agent API listing updates",
              "spec_name": "etsy_agent_api_listing_updates",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "etsy_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"listing_update_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"listing_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Listing field name\",\n      \"name\": \"field_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Current value\",\n      \"name\": \"current_value\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Proposed value\",\n      \"name\": \"proposed_value\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed listing update proposals before outbound Etsy listing edits.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Etsy agent API listing updates\",\n    \"spec_name\": \"etsy_agent_api_listing_updates\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"etsy_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "etsy"
          ]
        },
        {
          "specName": "etsy_agent_api_inventory_updates",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "inventory_update_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "listing_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "SKU",
                "name": "sku",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Current quantity",
                "name": "current_quantity",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Proposed quantity",
                "name": "proposed_quantity",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Proposed price",
                "name": "proposed_price",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed inventory update proposals before outbound Etsy inventory edits.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Etsy agent API inventory updates",
              "spec_name": "etsy_agent_api_inventory_updates",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "etsy_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"inventory_update_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"listing_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"SKU\",\n      \"name\": \"sku\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Current quantity\",\n      \"name\": \"current_quantity\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Proposed quantity\",\n      \"name\": \"proposed_quantity\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Proposed price\",\n      \"name\": \"proposed_price\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed inventory update proposals before outbound Etsy inventory edits.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Etsy agent API inventory updates\",\n    \"spec_name\": \"etsy_agent_api_inventory_updates\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"etsy_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "etsy"
          ]
        },
        {
          "specName": "etsy_api_shops",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "shop_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Shop name",
                "name": "shop_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Shop currency",
                "name": "currency_code",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Active listing count",
                "name": "listing_active_count",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Digital listing count",
                "name": "digital_listing_count",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Shop configuration observations for seller identity, currency, and listing counts.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Etsy API shops",
              "spec_name": "etsy_api_shops"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "etsy_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"shop_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Shop name\",\n      \"name\": \"shop_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Shop currency\",\n      \"name\": \"currency_code\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Active listing count\",\n      \"name\": \"listing_active_count\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Digital listing count\",\n      \"name\": \"digital_listing_count\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Shop configuration observations for seller identity, currency, and listing counts.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Etsy API shops\",\n    \"spec_name\": \"etsy_api_shops\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"etsy_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "etsy"
          ]
        },
        {
          "specName": "etsy_api_shop_sections",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "shop_section_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Shop id",
                "name": "shop_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Section title",
                "name": "title",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Display rank",
                "name": "rank",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Shop section observations for marketplace merchandising and navigation.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Etsy API shop sections",
              "spec_name": "etsy_api_shop_sections"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "etsy_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"shop_section_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Shop id\",\n      \"name\": \"shop_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Section title\",\n      \"name\": \"title\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Display rank\",\n      \"name\": \"rank\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Shop section observations for marketplace merchandising and navigation.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Etsy API shop sections\",\n    \"spec_name\": \"etsy_api_shop_sections\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"etsy_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "etsy"
          ]
        },
        {
          "specName": "etsy_api_shipping_profiles",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "shipping_profile_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Shop id",
                "name": "shop_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Profile title",
                "name": "title",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Origin country",
                "name": "origin_country_iso",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Minimum processing days",
                "name": "min_processing_days",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Maximum processing days",
                "name": "max_processing_days",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Shipping profile observations for fulfillment cost and listing readiness checks.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Etsy API shipping profiles",
              "spec_name": "etsy_api_shipping_profiles"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "etsy_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"shipping_profile_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Shop id\",\n      \"name\": \"shop_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Profile title\",\n      \"name\": \"title\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Origin country\",\n      \"name\": \"origin_country_iso\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Minimum processing days\",\n      \"name\": \"min_processing_days\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Maximum processing days\",\n      \"name\": \"max_processing_days\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Shipping profile observations for fulfillment cost and listing readiness checks.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Etsy API shipping profiles\",\n    \"spec_name\": \"etsy_api_shipping_profiles\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"etsy_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "etsy"
          ]
        },
        {
          "specName": "etsy_api_reviews",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "review_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Shop id",
                "name": "shop_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Listing id",
                "name": "listing_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Review rating",
                "name": "rating",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Review creation timestamp",
                "name": "created_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Review observations for quality, service, and marketplace reputation follow-up.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Etsy API reviews",
              "spec_name": "etsy_api_reviews"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "etsy_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"review_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Shop id\",\n      \"name\": \"shop_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Listing id\",\n      \"name\": \"listing_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review rating\",\n      \"name\": \"rating\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Review creation timestamp\",\n      \"name\": \"created_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Review observations for quality, service, and marketplace reputation follow-up.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Etsy API reviews\",\n    \"spec_name\": \"etsy_api_reviews\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"etsy_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "etsy"
          ]
        }
      ]
    },
    {
      "id": "bill_com_finance_library",
      "type": "collection",
      "domains": [
        "finance"
      ],
      "systems": [
        "bill_com"
      ],
      "version": "1.0.0",
      "summary": "Bill.com finance specs for vendors, bills, payments, customers, invoices, and governed AP setup/payment actions.",
      "coverageStatus": "Extended",
      "coverageNotes": "Covers AP, AR, organization/user setup, funding accounts, vendor credits, webhook events, and Spend & Expense card/budget/transaction objects.",
      "sourceDocs": [
        {
          "label": "BILL API Platform",
          "url": "https://developer.bill.com/docs"
        }
      ],
      "nextObjects": [
        "chart_of_accounts",
        "classes",
        "departments",
        "attachments",
        "approvals",
        "purchase_orders"
      ],
      "omittedObjects": [
        "bank account secrets",
        "raw user emails",
        "MFA/session handling"
      ],
      "needs": [
        "A Bill.com agent/operator role. The generated calls use bill_com_agent."
      ],
      "usefulFor": [
        "AP memory",
        "AR invoice visibility",
        "Vendor setup review",
        "Payment approval packets",
        "Cash and payment reconciliation"
      ],
      "extendWith": [
        "Approval source links from invoice intake specs",
        "Payment confirmation observations",
        "Vendor onboarding issue specs"
      ],
      "searchTerms": [
        "bill.com",
        "bill com",
        "vendors",
        "bills",
        "payments",
        "invoices",
        "customers",
        "accounts payable",
        "accounts receivable"
      ],
      "links": [
        {
          "from": "bill_com_agent_api_bill_payments",
          "to": "bill_com_api_bills",
          "kind": "source_link",
          "description": "Payment commitments cite the bill observation they intend to pay."
        },
        {
          "from": "bill_com_agent_api_vendor_updates",
          "to": "bill_com_api_vendors",
          "kind": "source_link",
          "description": "Vendor update proposals cite the latest vendor setup observation."
        }
      ],
      "installedSpecs": [
        {
          "id": "bill_com_api_vendors",
          "domain": "Observation",
          "purpose": "Vendor setup observations.",
          "systems": [
            "bill_com"
          ]
        },
        {
          "id": "bill_com_api_bills",
          "domain": "Observation",
          "purpose": "AP bill observations.",
          "systems": [
            "bill_com"
          ]
        },
        {
          "id": "bill_com_api_payments",
          "domain": "Observation",
          "purpose": "Payment lifecycle observations.",
          "systems": [
            "bill_com"
          ]
        },
        {
          "id": "bill_com_api_customers",
          "domain": "Observation",
          "purpose": "AR customer observations.",
          "systems": [
            "bill_com"
          ]
        },
        {
          "id": "bill_com_api_invoices",
          "domain": "Observation",
          "purpose": "AR invoice observations.",
          "systems": [
            "bill_com"
          ]
        },
        {
          "id": "bill_com_agent_api_bill_payments",
          "domain": "Commitment workflow",
          "purpose": "Governed AP payment packets.",
          "systems": [
            "bill_com"
          ]
        },
        {
          "id": "bill_com_agent_api_vendor_updates",
          "domain": "Commitment workflow",
          "purpose": "Governed vendor setup updates.",
          "systems": [
            "bill_com"
          ]
        },
        {
          "id": "bill_com_api_organizations",
          "domain": "Observation",
          "purpose": "Organization setup observations.",
          "systems": [
            "bill_com"
          ]
        },
        {
          "id": "bill_com_api_users",
          "domain": "Observation",
          "purpose": "User and permission observations.",
          "systems": [
            "bill_com"
          ]
        },
        {
          "id": "bill_com_api_funding_accounts",
          "domain": "Observation",
          "purpose": "Funding account observations.",
          "systems": [
            "bill_com"
          ]
        },
        {
          "id": "bill_com_api_vendor_credits",
          "domain": "Observation",
          "purpose": "Vendor credit observations.",
          "systems": [
            "bill_com"
          ]
        },
        {
          "id": "bill_com_api_webhook_events",
          "domain": "Observation",
          "purpose": "Webhook event observations.",
          "systems": [
            "bill_com"
          ]
        },
        {
          "id": "bill_com_spend_expense_budgets",
          "domain": "Observation",
          "purpose": "Spend budget observations.",
          "systems": [
            "bill_com"
          ]
        },
        {
          "id": "bill_com_spend_expense_cards",
          "domain": "Observation",
          "purpose": "Spend card observations.",
          "systems": [
            "bill_com"
          ]
        },
        {
          "id": "bill_com_spend_expense_transactions",
          "domain": "Observation",
          "purpose": "Spend transaction observations.",
          "systems": [
            "bill_com"
          ]
        }
      ],
      "createSpecPayloads": [
        {
          "specName": "bill_com_api_vendors",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "vendor_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Vendor name",
                "name": "vendor_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Vendor status",
                "name": "status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Payment method",
                "name": "payment_method",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Bank account status",
                "name": "bank_account_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Vendor setup observations for AP readiness and payment risk checks.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Bill.com API vendors",
              "spec_name": "bill_com_api_vendors"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "bill_com_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"vendor_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Vendor name\",\n      \"name\": \"vendor_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Vendor status\",\n      \"name\": \"status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Payment method\",\n      \"name\": \"payment_method\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Bank account status\",\n      \"name\": \"bank_account_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Vendor setup observations for AP readiness and payment risk checks.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Bill.com API vendors\",\n    \"spec_name\": \"bill_com_api_vendors\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"bill_com_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "bill_com"
          ]
        },
        {
          "specName": "bill_com_api_bills",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "bill_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Vendor id",
                "name": "vendor_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Invoice number",
                "name": "invoice_number",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Due date",
                "name": "due_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Amount due",
                "name": "amount_due",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Bill observations for AP review, due dates, approval, and payment planning.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Bill.com API bills",
              "spec_name": "bill_com_api_bills"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "bill_com_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"bill_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Vendor id\",\n      \"name\": \"vendor_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Invoice number\",\n      \"name\": \"invoice_number\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Due date\",\n      \"name\": \"due_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Amount due\",\n      \"name\": \"amount_due\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Bill observations for AP review, due dates, approval, and payment planning.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Bill.com API bills\",\n    \"spec_name\": \"bill_com_api_bills\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"bill_com_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "bill_com"
          ]
        },
        {
          "specName": "bill_com_api_payments",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "payment_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Vendor id",
                "name": "vendor_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Bill id",
                "name": "bill_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Process date",
                "name": "process_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Payment amount",
                "name": "amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Payment observations for sent, cleared, failed, or voided vendor payments.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Bill.com API payments",
              "spec_name": "bill_com_api_payments"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "bill_com_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"payment_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Vendor id\",\n      \"name\": \"vendor_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Bill id\",\n      \"name\": \"bill_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Process date\",\n      \"name\": \"process_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Payment amount\",\n      \"name\": \"amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Payment observations for sent, cleared, failed, or voided vendor payments.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Bill.com API payments\",\n    \"spec_name\": \"bill_com_api_payments\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"bill_com_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "bill_com"
          ]
        },
        {
          "specName": "bill_com_api_customers",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "customer_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Customer name",
                "name": "customer_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Customer status",
                "name": "status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed or tokenized email reference",
                "name": "email_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Customer observations for AR workflows and invoice delivery.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Bill.com API customers",
              "spec_name": "bill_com_api_customers"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "bill_com_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"customer_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Customer name\",\n      \"name\": \"customer_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Customer status\",\n      \"name\": \"status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed or tokenized email reference\",\n      \"name\": \"email_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Customer observations for AR workflows and invoice delivery.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Bill.com API customers\",\n    \"spec_name\": \"bill_com_api_customers\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"bill_com_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "bill_com"
          ]
        },
        {
          "specName": "bill_com_api_invoices",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "invoice_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Customer id",
                "name": "customer_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Invoice number",
                "name": "invoice_number",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Due date",
                "name": "due_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Open balance",
                "name": "balance",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "AR invoice observations for collection and cash forecasting.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Bill.com API invoices",
              "spec_name": "bill_com_api_invoices"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "bill_com_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"invoice_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Customer id\",\n      \"name\": \"customer_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Invoice number\",\n      \"name\": \"invoice_number\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Due date\",\n      \"name\": \"due_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Open balance\",\n      \"name\": \"balance\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"AR invoice observations for collection and cash forecasting.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Bill.com API invoices\",\n    \"spec_name\": \"bill_com_api_invoices\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"bill_com_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "bill_com"
          ]
        },
        {
          "specName": "bill_com_agent_api_bill_payments",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "bill_payment_commitment_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "bill_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Vendor id",
                "name": "vendor_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Payment amount",
                "name": "payment_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Process date",
                "name": "process_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed bill payment packets before outbound Bill.com payment creation.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Bill.com agent API bill payments",
              "spec_name": "bill_com_agent_api_bill_payments",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "bill_com_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"bill_payment_commitment_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"bill_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Vendor id\",\n      \"name\": \"vendor_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Payment amount\",\n      \"name\": \"payment_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Process date\",\n      \"name\": \"process_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed bill payment packets before outbound Bill.com payment creation.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Bill.com agent API bill payments\",\n    \"spec_name\": \"bill_com_agent_api_bill_payments\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"bill_com_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "bill_com"
          ]
        },
        {
          "specName": "bill_com_agent_api_vendor_updates",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "vendor_update_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "vendor_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Vendor field name",
                "name": "field_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Current value",
                "name": "current_value",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Proposed value",
                "name": "proposed_value",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed vendor setup updates before outbound Bill.com edits.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Bill.com agent API vendor updates",
              "spec_name": "bill_com_agent_api_vendor_updates",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "bill_com_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"vendor_update_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"vendor_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Vendor field name\",\n      \"name\": \"field_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Current value\",\n      \"name\": \"current_value\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Proposed value\",\n      \"name\": \"proposed_value\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed vendor setup updates before outbound Bill.com edits.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Bill.com agent API vendor updates\",\n    \"spec_name\": \"bill_com_agent_api_vendor_updates\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"bill_com_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "bill_com"
          ]
        },
        {
          "specName": "bill_com_api_organizations",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "organization_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Organization name",
                "name": "organization_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Organization status",
                "name": "status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Default currency",
                "name": "default_currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Organization observations for legal identity, settings, and payment readiness.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Bill.com API organizations",
              "spec_name": "bill_com_api_organizations"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "bill_com_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"organization_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Organization name\",\n      \"name\": \"organization_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Organization status\",\n      \"name\": \"status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Default currency\",\n      \"name\": \"default_currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Organization observations for legal identity, settings, and payment readiness.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Bill.com API organizations\",\n    \"spec_name\": \"bill_com_api_organizations\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"bill_com_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "bill_com"
          ]
        },
        {
          "specName": "bill_com_api_users",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "user_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed or tokenized email reference",
                "name": "email_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Role name",
                "name": "role_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "User status",
                "name": "status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "User observations for permissions, approvers, and payment authority review.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Bill.com API users",
              "spec_name": "bill_com_api_users"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "bill_com_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"user_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed or tokenized email reference\",\n      \"name\": \"email_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Role name\",\n      \"name\": \"role_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"User status\",\n      \"name\": \"status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"User observations for permissions, approvers, and payment authority review.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Bill.com API users\",\n    \"spec_name\": \"bill_com_api_users\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"bill_com_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "bill_com"
          ]
        },
        {
          "specName": "bill_com_api_funding_accounts",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "funding_account_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Funding account type",
                "name": "account_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Funding account status",
                "name": "account_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Funding account observations for outbound payment readiness.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Bill.com API funding accounts",
              "spec_name": "bill_com_api_funding_accounts"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "bill_com_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"funding_account_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Funding account type\",\n      \"name\": \"account_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Funding account status\",\n      \"name\": \"account_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Funding account observations for outbound payment readiness.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Bill.com API funding accounts\",\n    \"spec_name\": \"bill_com_api_funding_accounts\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"bill_com_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "bill_com"
          ]
        },
        {
          "specName": "bill_com_api_vendor_credits",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "vendor_credit_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Vendor id",
                "name": "vendor_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Credit number",
                "name": "credit_number",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Credit amount",
                "name": "credit_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Remaining amount",
                "name": "remaining_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Vendor credit observations for AP netting, open-credit review, and payment planning.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Bill.com API vendor credits",
              "spec_name": "bill_com_api_vendor_credits"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "bill_com_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"vendor_credit_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Vendor id\",\n      \"name\": \"vendor_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Credit number\",\n      \"name\": \"credit_number\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Credit amount\",\n      \"name\": \"credit_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Remaining amount\",\n      \"name\": \"remaining_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Vendor credit observations for AP netting, open-credit review, and payment planning.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Bill.com API vendor credits\",\n    \"spec_name\": \"bill_com_api_vendor_credits\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"bill_com_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "bill_com"
          ]
        },
        {
          "specName": "bill_com_api_webhook_events",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "event_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Event type",
                "name": "event_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Event timestamp",
                "name": "event_time",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Resource type",
                "name": "resource_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Resource id",
                "name": "resource_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Webhook event observations for payment, bill, vendor, and sync state changes.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Bill.com API webhook events",
              "spec_name": "bill_com_api_webhook_events"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "bill_com_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"event_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Event type\",\n      \"name\": \"event_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Event timestamp\",\n      \"name\": \"event_time\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Resource type\",\n      \"name\": \"resource_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Resource id\",\n      \"name\": \"resource_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Webhook event observations for payment, bill, vendor, and sync state changes.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Bill.com API webhook events\",\n    \"spec_name\": \"bill_com_api_webhook_events\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"bill_com_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "bill_com"
          ]
        },
        {
          "specName": "bill_com_spend_expense_budgets",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "budget_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Budget name",
                "name": "budget_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Budget owner user id",
                "name": "owner_user_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Budget limit",
                "name": "limit_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Spend & Expense budget observations for card policy and team spend controls.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Bill.com Spend & Expense budgets",
              "spec_name": "bill_com_spend_expense_budgets"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "bill_com_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"budget_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Budget name\",\n      \"name\": \"budget_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Budget owner user id\",\n      \"name\": \"owner_user_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Budget limit\",\n      \"name\": \"limit_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Spend & Expense budget observations for card policy and team spend controls.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Bill.com Spend & Expense budgets\",\n    \"spec_name\": \"bill_com_spend_expense_budgets\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"bill_com_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "bill_com"
          ]
        },
        {
          "specName": "bill_com_spend_expense_cards",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "card_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Assigned user id",
                "name": "user_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Associated vendor id",
                "name": "vendor_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Card status",
                "name": "card_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Last four digits",
                "name": "last_four",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Spend & Expense card observations for issued cards, controls, and vendor cards.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Bill.com Spend & Expense cards",
              "spec_name": "bill_com_spend_expense_cards"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "bill_com_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"card_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Assigned user id\",\n      \"name\": \"user_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Associated vendor id\",\n      \"name\": \"vendor_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Card status\",\n      \"name\": \"card_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Last four digits\",\n      \"name\": \"last_four\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Spend & Expense card observations for issued cards, controls, and vendor cards.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Bill.com Spend & Expense cards\",\n    \"spec_name\": \"bill_com_spend_expense_cards\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"bill_com_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "bill_com"
          ]
        },
        {
          "specName": "bill_com_spend_expense_transactions",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "transaction_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Card id",
                "name": "card_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Merchant name",
                "name": "merchant_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Transaction date",
                "name": "transaction_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Transaction amount",
                "name": "amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Spend & Expense transaction observations for card spend, receipts, and policy review.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Bill.com Spend & Expense transactions",
              "spec_name": "bill_com_spend_expense_transactions"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "bill_com_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"transaction_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Card id\",\n      \"name\": \"card_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Merchant name\",\n      \"name\": \"merchant_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Transaction date\",\n      \"name\": \"transaction_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Transaction amount\",\n      \"name\": \"amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Spend & Expense transaction observations for card spend, receipts, and policy review.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Bill.com Spend & Expense transactions\",\n    \"spec_name\": \"bill_com_spend_expense_transactions\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"bill_com_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "bill_com"
          ]
        }
      ]
    },
    {
      "id": "stripe_payments_library",
      "type": "collection",
      "domains": [
        "billing",
        "finance"
      ],
      "systems": [
        "stripe"
      ],
      "version": "1.0.0",
      "summary": "Stripe billing and payments specs for customers, products/prices, subscriptions, invoices, payment intents, refunds, payouts, disputes, and governed billing actions.",
      "coverageStatus": "Extended",
      "coverageNotes": "Covers billing, payments, checkout, discounts, payment methods, settlement, disputes, events, and governed refund/subscription changes.",
      "sourceDocs": [
        {
          "label": "Stripe API reference",
          "url": "https://docs.stripe.com/api"
        }
      ],
      "nextObjects": [
        "accounts",
        "transfers",
        "application_fees",
        "payment_links",
        "quotes",
        "tax_rates",
        "entitlements"
      ],
      "omittedObjects": [
        "raw card data",
        "Connect onboarding flows",
        "fraud/radar rule management"
      ],
      "needs": [
        "A Stripe agent/operator role. The generated calls use stripe_agent."
      ],
      "usefulFor": [
        "Subscription billing memory",
        "Payment lifecycle review",
        "Refund governance",
        "Payout reconciliation",
        "Dispute follow-up"
      ],
      "extendWith": [
        "Webhook event observations",
        "Entitlement or feature specs for SaaS products",
        "Dunning and collections issue specs"
      ],
      "searchTerms": [
        "stripe",
        "customers",
        "payment intents",
        "subscriptions",
        "invoices",
        "refunds",
        "payouts",
        "disputes",
        "billing"
      ],
      "links": [
        {
          "from": "stripe_agent_api_refund_proposals",
          "to": "stripe_api_payment_intents",
          "kind": "source_link",
          "description": "Refund proposals cite the payment observation they intend to refund."
        },
        {
          "from": "stripe_agent_api_subscription_changes",
          "to": "stripe_api_subscriptions",
          "kind": "source_link",
          "description": "Subscription change proposals cite the current subscription observation."
        }
      ],
      "installedSpecs": [
        {
          "id": "stripe_api_customers",
          "domain": "Observation",
          "purpose": "Billing customer observations.",
          "systems": [
            "stripe"
          ]
        },
        {
          "id": "stripe_api_products_prices",
          "domain": "Observation",
          "purpose": "Product and price catalog observations.",
          "systems": [
            "stripe"
          ]
        },
        {
          "id": "stripe_api_subscriptions",
          "domain": "Observation",
          "purpose": "Subscription lifecycle observations.",
          "systems": [
            "stripe"
          ]
        },
        {
          "id": "stripe_api_invoices",
          "domain": "Observation",
          "purpose": "Invoice lifecycle observations.",
          "systems": [
            "stripe"
          ]
        },
        {
          "id": "stripe_api_payment_intents",
          "domain": "Observation",
          "purpose": "PaymentIntent lifecycle observations.",
          "systems": [
            "stripe"
          ]
        },
        {
          "id": "stripe_api_refunds",
          "domain": "Observation",
          "purpose": "Refund observations.",
          "systems": [
            "stripe"
          ]
        },
        {
          "id": "stripe_api_payouts",
          "domain": "Observation",
          "purpose": "Payout observations.",
          "systems": [
            "stripe"
          ]
        },
        {
          "id": "stripe_api_disputes",
          "domain": "Observation",
          "purpose": "Dispute observations.",
          "systems": [
            "stripe"
          ]
        },
        {
          "id": "stripe_agent_api_refund_proposals",
          "domain": "Commitment workflow",
          "purpose": "Governed refund proposals.",
          "systems": [
            "stripe"
          ]
        },
        {
          "id": "stripe_agent_api_subscription_changes",
          "domain": "Commitment workflow",
          "purpose": "Governed subscription changes.",
          "systems": [
            "stripe"
          ]
        },
        {
          "id": "stripe_api_checkout_sessions",
          "domain": "Observation",
          "purpose": "Checkout Session lifecycle observations.",
          "systems": [
            "stripe"
          ]
        },
        {
          "id": "stripe_api_charges",
          "domain": "Observation",
          "purpose": "Charge observations.",
          "systems": [
            "stripe"
          ]
        },
        {
          "id": "stripe_api_balance_transactions",
          "domain": "Observation",
          "purpose": "Balance transaction observations.",
          "systems": [
            "stripe"
          ]
        },
        {
          "id": "stripe_api_credit_notes",
          "domain": "Observation",
          "purpose": "Credit note observations.",
          "systems": [
            "stripe"
          ]
        },
        {
          "id": "stripe_api_coupons_promotion_codes",
          "domain": "Observation",
          "purpose": "Coupon and promotion-code observations.",
          "systems": [
            "stripe"
          ]
        },
        {
          "id": "stripe_api_payment_methods",
          "domain": "Observation",
          "purpose": "Payment method observations.",
          "systems": [
            "stripe"
          ]
        },
        {
          "id": "stripe_api_events",
          "domain": "Observation",
          "purpose": "Webhook/event observations.",
          "systems": [
            "stripe"
          ]
        }
      ],
      "createSpecPayloads": [
        {
          "specName": "stripe_api_customers",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "customer_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed or tokenized email reference",
                "name": "email_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Created timestamp",
                "name": "created_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Delinquency flag",
                "name": "delinquent",
                "tests": [],
                "type": "boolean"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Customer observations for billing identity and payment relationships.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Stripe API customers",
              "spec_name": "stripe_api_customers"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "stripe_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"customer_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed or tokenized email reference\",\n      \"name\": \"email_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Created timestamp\",\n      \"name\": \"created_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Delinquency flag\",\n      \"name\": \"delinquent\",\n      \"tests\": [],\n      \"type\": \"boolean\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Customer observations for billing identity and payment relationships.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Stripe API customers\",\n    \"spec_name\": \"stripe_api_customers\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"stripe_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "stripe"
          ]
        },
        {
          "specName": "stripe_api_products_prices",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "price_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Product id",
                "name": "product_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Product name",
                "name": "product_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Unit amount",
                "name": "unit_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Recurring interval",
                "name": "billing_interval",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Product and price observations for recurring and one-time billing catalogs.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Stripe API products and prices",
              "spec_name": "stripe_api_products_prices"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "stripe_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"price_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Product id\",\n      \"name\": \"product_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Product name\",\n      \"name\": \"product_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Unit amount\",\n      \"name\": \"unit_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Recurring interval\",\n      \"name\": \"billing_interval\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Product and price observations for recurring and one-time billing catalogs.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Stripe API products and prices\",\n    \"spec_name\": \"stripe_api_products_prices\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"stripe_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "stripe"
          ]
        },
        {
          "specName": "stripe_api_subscriptions",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "subscription_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Customer id",
                "name": "customer_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Subscription status",
                "name": "status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Current period end",
                "name": "current_period_end",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Cancel at period end",
                "name": "cancel_at_period_end",
                "tests": [],
                "type": "boolean"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Subscription observations for lifecycle, plan, renewal, and cancellation workflows.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Stripe API subscriptions",
              "spec_name": "stripe_api_subscriptions"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "stripe_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"subscription_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Customer id\",\n      \"name\": \"customer_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Subscription status\",\n      \"name\": \"status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Current period end\",\n      \"name\": \"current_period_end\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Cancel at period end\",\n      \"name\": \"cancel_at_period_end\",\n      \"tests\": [],\n      \"type\": \"boolean\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Subscription observations for lifecycle, plan, renewal, and cancellation workflows.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Stripe API subscriptions\",\n    \"spec_name\": \"stripe_api_subscriptions\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"stripe_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "stripe"
          ]
        },
        {
          "specName": "stripe_api_invoices",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "invoice_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Customer id",
                "name": "customer_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Subscription id",
                "name": "subscription_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Invoice status",
                "name": "status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Amount due",
                "name": "amount_due",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Amount paid",
                "name": "amount_paid",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Invoice observations for billing status, collection, and payment follow-up.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Stripe API invoices",
              "spec_name": "stripe_api_invoices"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "stripe_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"invoice_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Customer id\",\n      \"name\": \"customer_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Subscription id\",\n      \"name\": \"subscription_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Invoice status\",\n      \"name\": \"status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Amount due\",\n      \"name\": \"amount_due\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Amount paid\",\n      \"name\": \"amount_paid\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Invoice observations for billing status, collection, and payment follow-up.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Stripe API invoices\",\n    \"spec_name\": \"stripe_api_invoices\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"stripe_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "stripe"
          ]
        },
        {
          "specName": "stripe_api_payment_intents",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "payment_intent_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Customer id",
                "name": "customer_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Amount",
                "name": "amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Amount received",
                "name": "amount_received",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "PaymentIntent status",
                "name": "status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "PaymentIntent observations for payment attempts and authentication/payment lifecycle.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Stripe API payment intents",
              "spec_name": "stripe_api_payment_intents"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "stripe_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"payment_intent_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Customer id\",\n      \"name\": \"customer_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Amount\",\n      \"name\": \"amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Amount received\",\n      \"name\": \"amount_received\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"PaymentIntent status\",\n      \"name\": \"status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"PaymentIntent observations for payment attempts and authentication/payment lifecycle.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Stripe API payment intents\",\n    \"spec_name\": \"stripe_api_payment_intents\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"stripe_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "stripe"
          ]
        },
        {
          "specName": "stripe_api_refunds",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "refund_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "PaymentIntent id",
                "name": "payment_intent_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Charge id",
                "name": "charge_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Refund amount",
                "name": "amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Refund reason",
                "name": "reason",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Refund observations for customer credits and settlement reconciliation.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Stripe API refunds",
              "spec_name": "stripe_api_refunds"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "stripe_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"refund_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"PaymentIntent id\",\n      \"name\": \"payment_intent_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Charge id\",\n      \"name\": \"charge_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Refund amount\",\n      \"name\": \"amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Refund reason\",\n      \"name\": \"reason\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Refund observations for customer credits and settlement reconciliation.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Stripe API refunds\",\n    \"spec_name\": \"stripe_api_refunds\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"stripe_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "stripe"
          ]
        },
        {
          "specName": "stripe_api_payouts",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "payout_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Arrival date",
                "name": "arrival_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Payout status",
                "name": "status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Payout amount",
                "name": "amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Payout observations for settlement timing and cash reconciliation.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Stripe API payouts",
              "spec_name": "stripe_api_payouts"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "stripe_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"payout_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Arrival date\",\n      \"name\": \"arrival_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Payout status\",\n      \"name\": \"status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Payout amount\",\n      \"name\": \"amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Payout observations for settlement timing and cash reconciliation.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Stripe API payouts\",\n    \"spec_name\": \"stripe_api_payouts\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"stripe_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "stripe"
          ]
        },
        {
          "specName": "stripe_api_disputes",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "dispute_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "PaymentIntent id",
                "name": "payment_intent_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Charge id",
                "name": "charge_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Dispute reason",
                "name": "reason",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Dispute amount",
                "name": "amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Dispute observations for evidence gathering and finance/legal follow-up.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Stripe API disputes",
              "spec_name": "stripe_api_disputes"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "stripe_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"dispute_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"PaymentIntent id\",\n      \"name\": \"payment_intent_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Charge id\",\n      \"name\": \"charge_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Dispute reason\",\n      \"name\": \"reason\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Dispute amount\",\n      \"name\": \"amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Dispute observations for evidence gathering and finance/legal follow-up.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Stripe API disputes\",\n    \"spec_name\": \"stripe_api_disputes\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"stripe_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "stripe"
          ]
        },
        {
          "specName": "stripe_agent_api_refund_proposals",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "refund_proposal_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "payment_intent_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Refund amount",
                "name": "refund_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Refund reason",
                "name": "reason",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed refund proposals before outbound Stripe refund creation.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Stripe agent API refund proposals",
              "spec_name": "stripe_agent_api_refund_proposals",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "stripe_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"refund_proposal_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"payment_intent_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Refund amount\",\n      \"name\": \"refund_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Refund reason\",\n      \"name\": \"reason\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed refund proposals before outbound Stripe refund creation.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Stripe agent API refund proposals\",\n    \"spec_name\": \"stripe_agent_api_refund_proposals\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"stripe_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "stripe"
          ]
        },
        {
          "specName": "stripe_agent_api_subscription_changes",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "subscription_change_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "subscription_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Current subscription status",
                "name": "current_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Proposed subscription status",
                "name": "proposed_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Effective date",
                "name": "effective_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed subscription change proposals before outbound Stripe edits.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Stripe agent API subscription changes",
              "spec_name": "stripe_agent_api_subscription_changes",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "stripe_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"subscription_change_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"subscription_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Current subscription status\",\n      \"name\": \"current_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Proposed subscription status\",\n      \"name\": \"proposed_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Effective date\",\n      \"name\": \"effective_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed subscription change proposals before outbound Stripe edits.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Stripe agent API subscription changes\",\n    \"spec_name\": \"stripe_agent_api_subscription_changes\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"stripe_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "stripe"
          ]
        },
        {
          "specName": "stripe_api_checkout_sessions",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "checkout_session_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Customer id",
                "name": "customer_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "PaymentIntent id",
                "name": "payment_intent_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Subscription id",
                "name": "subscription_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Checkout mode",
                "name": "mode",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Payment status",
                "name": "payment_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Total amount",
                "name": "amount_total",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Checkout Session observations for hosted checkout lifecycle and conversion analysis.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Stripe API checkout sessions",
              "spec_name": "stripe_api_checkout_sessions"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "stripe_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"checkout_session_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Customer id\",\n      \"name\": \"customer_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"PaymentIntent id\",\n      \"name\": \"payment_intent_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Subscription id\",\n      \"name\": \"subscription_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Checkout mode\",\n      \"name\": \"mode\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Payment status\",\n      \"name\": \"payment_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Total amount\",\n      \"name\": \"amount_total\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Checkout Session observations for hosted checkout lifecycle and conversion analysis.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Stripe API checkout sessions\",\n    \"spec_name\": \"stripe_api_checkout_sessions\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"stripe_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "stripe"
          ]
        },
        {
          "specName": "stripe_api_charges",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "charge_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "PaymentIntent id",
                "name": "payment_intent_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Customer id",
                "name": "customer_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Charge amount",
                "name": "amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Captured amount",
                "name": "amount_captured",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Paid flag",
                "name": "paid",
                "tests": [],
                "type": "boolean"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Charge observations for payment capture, disputes, refunds, and receipt workflows.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Stripe API charges",
              "spec_name": "stripe_api_charges"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "stripe_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"charge_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"PaymentIntent id\",\n      \"name\": \"payment_intent_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Customer id\",\n      \"name\": \"customer_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Charge amount\",\n      \"name\": \"amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Captured amount\",\n      \"name\": \"amount_captured\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Paid flag\",\n      \"name\": \"paid\",\n      \"tests\": [],\n      \"type\": \"boolean\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Charge observations for payment capture, disputes, refunds, and receipt workflows.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Stripe API charges\",\n    \"spec_name\": \"stripe_api_charges\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"stripe_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "stripe"
          ]
        },
        {
          "specName": "stripe_api_balance_transactions",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "balance_transaction_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Source object id",
                "name": "source_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Balance transaction type",
                "name": "type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Gross amount",
                "name": "amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Fee amount",
                "name": "fee",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Net amount",
                "name": "net",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Balance transaction observations for fees, net settlement, and financial reconciliation.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Stripe API balance transactions",
              "spec_name": "stripe_api_balance_transactions"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "stripe_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"balance_transaction_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Source object id\",\n      \"name\": \"source_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Balance transaction type\",\n      \"name\": \"type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Gross amount\",\n      \"name\": \"amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Fee amount\",\n      \"name\": \"fee\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Net amount\",\n      \"name\": \"net\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Balance transaction observations for fees, net settlement, and financial reconciliation.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Stripe API balance transactions\",\n    \"spec_name\": \"stripe_api_balance_transactions\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"stripe_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "stripe"
          ]
        },
        {
          "specName": "stripe_api_credit_notes",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "credit_note_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Invoice id",
                "name": "invoice_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Customer id",
                "name": "customer_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Credit note status",
                "name": "status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Credit note total",
                "name": "total",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Credit note observations for invoice adjustments and customer credits.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Stripe API credit notes",
              "spec_name": "stripe_api_credit_notes"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "stripe_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"credit_note_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Invoice id\",\n      \"name\": \"invoice_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Customer id\",\n      \"name\": \"customer_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Credit note status\",\n      \"name\": \"status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Credit note total\",\n      \"name\": \"total\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Credit note observations for invoice adjustments and customer credits.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Stripe API credit notes\",\n    \"spec_name\": \"stripe_api_credit_notes\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"stripe_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "stripe"
          ]
        },
        {
          "specName": "stripe_api_coupons_promotion_codes",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "discount_artifact_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "coupon or promotion_code",
                "name": "artifact_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Promotion code",
                "name": "code",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Percent off",
                "name": "percent_off",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Amount off",
                "name": "amount_off",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Coupon and promotion-code observations for discount governance and attribution.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Stripe API coupons and promotion codes",
              "spec_name": "stripe_api_coupons_promotion_codes"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "stripe_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"discount_artifact_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"coupon or promotion_code\",\n      \"name\": \"artifact_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Promotion code\",\n      \"name\": \"code\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Percent off\",\n      \"name\": \"percent_off\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Amount off\",\n      \"name\": \"amount_off\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Coupon and promotion-code observations for discount governance and attribution.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Stripe API coupons and promotion codes\",\n    \"spec_name\": \"stripe_api_coupons_promotion_codes\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"stripe_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "stripe"
          ]
        },
        {
          "specName": "stripe_api_payment_methods",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "payment_method_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Customer id",
                "name": "customer_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Payment method type",
                "name": "payment_method_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Card brand",
                "name": "card_brand",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Card last four",
                "name": "card_last4",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Payment method observations for customer billing readiness and failure diagnostics.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Stripe API payment methods",
              "spec_name": "stripe_api_payment_methods"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "stripe_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"payment_method_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Customer id\",\n      \"name\": \"customer_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Payment method type\",\n      \"name\": \"payment_method_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Card brand\",\n      \"name\": \"card_brand\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Card last four\",\n      \"name\": \"card_last4\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Payment method observations for customer billing readiness and failure diagnostics.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Stripe API payment methods\",\n    \"spec_name\": \"stripe_api_payment_methods\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"stripe_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "stripe"
          ]
        },
        {
          "specName": "stripe_api_events",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "event_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Event type",
                "name": "event_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Event creation timestamp",
                "name": "created_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Data object type",
                "name": "object_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Data object id",
                "name": "object_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Stripe event observations for webhook-driven sync, audit, and replay workflows.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Stripe API events",
              "spec_name": "stripe_api_events"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "stripe_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"event_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Event type\",\n      \"name\": \"event_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Event creation timestamp\",\n      \"name\": \"created_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Data object type\",\n      \"name\": \"object_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Data object id\",\n      \"name\": \"object_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Stripe event observations for webhook-driven sync, audit, and replay workflows.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Stripe API events\",\n    \"spec_name\": \"stripe_api_events\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"stripe_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "stripe"
          ]
        }
      ]
    },
    {
      "id": "square_pos_library",
      "type": "collection",
      "domains": [
        "commerce",
        "billing"
      ],
      "systems": [
        "square"
      ],
      "version": "1.0.0",
      "summary": "Square POS and commerce specs for catalog objects, orders, payments, refunds, customers, inventory counts, and governed catalog/refund actions.",
      "coverageStatus": "Extended",
      "coverageNotes": "Covers POS commerce, locations, catalog, inventory, payments, refunds, invoices, subscriptions, disputes, payouts, gift cards, team, and bookings.",
      "sourceDocs": [
        {
          "label": "Square API reference",
          "url": "https://developer.squareup.com/reference/square"
        }
      ],
      "nextObjects": [
        "loyalty_accounts",
        "cash_drawers",
        "shifts",
        "wage_settings",
        "terminal_checkouts",
        "bank_accounts"
      ],
      "omittedObjects": [
        "card-on-file secrets",
        "device management details",
        "OAuth app lifecycle"
      ],
      "needs": [
        "A Square agent/operator role. The generated calls use square_agent."
      ],
      "usefulFor": [
        "POS sales memory",
        "Catalog and inventory review",
        "Payment reconciliation",
        "Refund approval",
        "Customer/order lookup"
      ],
      "extendWith": [
        "Location-specific inventory expectations",
        "Tender reconciliation specs",
        "In-person vs online order comparisons"
      ],
      "searchTerms": [
        "square",
        "pos",
        "catalog",
        "orders",
        "payments",
        "refunds",
        "customers",
        "inventory"
      ],
      "links": [
        {
          "from": "square_agent_api_catalog_updates",
          "to": "square_api_catalog_objects",
          "kind": "source_link",
          "description": "Catalog update proposals cite the latest catalog object observation."
        },
        {
          "from": "square_agent_api_refund_proposals",
          "to": "square_api_payments",
          "kind": "source_link",
          "description": "Refund proposals cite the payment observation they intend to refund."
        }
      ],
      "installedSpecs": [
        {
          "id": "square_api_catalog_objects",
          "domain": "Observation",
          "purpose": "Catalog object observations.",
          "systems": [
            "square"
          ]
        },
        {
          "id": "square_api_orders",
          "domain": "Observation",
          "purpose": "Order lifecycle observations.",
          "systems": [
            "square"
          ]
        },
        {
          "id": "square_api_payments",
          "domain": "Observation",
          "purpose": "Payment observations.",
          "systems": [
            "square"
          ]
        },
        {
          "id": "square_api_refunds",
          "domain": "Observation",
          "purpose": "Refund observations.",
          "systems": [
            "square"
          ]
        },
        {
          "id": "square_api_customers",
          "domain": "Observation",
          "purpose": "Customer profile observations.",
          "systems": [
            "square"
          ]
        },
        {
          "id": "square_api_inventory_counts",
          "domain": "Observation",
          "purpose": "Inventory count observations.",
          "systems": [
            "square"
          ]
        },
        {
          "id": "square_agent_api_catalog_updates",
          "domain": "Commitment workflow",
          "purpose": "Governed catalog updates.",
          "systems": [
            "square"
          ]
        },
        {
          "id": "square_agent_api_refund_proposals",
          "domain": "Commitment workflow",
          "purpose": "Governed refund proposals.",
          "systems": [
            "square"
          ]
        },
        {
          "id": "square_api_locations",
          "domain": "Observation",
          "purpose": "Location observations.",
          "systems": [
            "square"
          ]
        },
        {
          "id": "square_api_invoices",
          "domain": "Observation",
          "purpose": "Invoice observations.",
          "systems": [
            "square"
          ]
        },
        {
          "id": "square_api_subscriptions",
          "domain": "Observation",
          "purpose": "Subscription observations.",
          "systems": [
            "square"
          ]
        },
        {
          "id": "square_api_disputes",
          "domain": "Observation",
          "purpose": "Dispute observations.",
          "systems": [
            "square"
          ]
        },
        {
          "id": "square_api_payouts",
          "domain": "Observation",
          "purpose": "Payout observations.",
          "systems": [
            "square"
          ]
        },
        {
          "id": "square_api_gift_cards",
          "domain": "Observation",
          "purpose": "Gift card observations.",
          "systems": [
            "square"
          ]
        },
        {
          "id": "square_api_team_members",
          "domain": "Observation",
          "purpose": "Team member observations.",
          "systems": [
            "square"
          ]
        },
        {
          "id": "square_api_bookings",
          "domain": "Observation",
          "purpose": "Booking observations.",
          "systems": [
            "square"
          ]
        }
      ],
      "createSpecPayloads": [
        {
          "specName": "square_api_catalog_objects",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "catalog_object_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Catalog object type",
                "name": "object_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Catalog object version",
                "name": "version",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Catalog object name",
                "name": "name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Deletion flag",
                "name": "is_deleted",
                "tests": [],
                "type": "boolean"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Catalog observations for items, variations, modifiers, discounts, taxes, and categories.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Square API catalog objects",
              "spec_name": "square_api_catalog_objects"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "square_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"catalog_object_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Catalog object type\",\n      \"name\": \"object_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Catalog object version\",\n      \"name\": \"version\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Catalog object name\",\n      \"name\": \"name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Deletion flag\",\n      \"name\": \"is_deleted\",\n      \"tests\": [],\n      \"type\": \"boolean\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Catalog observations for items, variations, modifiers, discounts, taxes, and categories.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Square API catalog objects\",\n    \"spec_name\": \"square_api_catalog_objects\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"square_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "square"
          ]
        },
        {
          "specName": "square_api_orders",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "order_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Location id",
                "name": "location_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Customer id",
                "name": "customer_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Order state",
                "name": "state",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Order total",
                "name": "total_money_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Order observations for POS and online sales, fulfillment, totals, and customer references.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Square API orders",
              "spec_name": "square_api_orders"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "square_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"order_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Location id\",\n      \"name\": \"location_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Customer id\",\n      \"name\": \"customer_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Order state\",\n      \"name\": \"state\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Order total\",\n      \"name\": \"total_money_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Order observations for POS and online sales, fulfillment, totals, and customer references.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Square API orders\",\n    \"spec_name\": \"square_api_orders\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"square_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "square"
          ]
        },
        {
          "specName": "square_api_payments",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "payment_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Order id",
                "name": "order_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Location id",
                "name": "location_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Payment status",
                "name": "status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Payment amount",
                "name": "amount_money",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Payment observations for Square seller payment lifecycle and reconciliation.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Square API payments",
              "spec_name": "square_api_payments"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "square_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"payment_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Order id\",\n      \"name\": \"order_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Location id\",\n      \"name\": \"location_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Payment status\",\n      \"name\": \"status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Payment amount\",\n      \"name\": \"amount_money\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Payment observations for Square seller payment lifecycle and reconciliation.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Square API payments\",\n    \"spec_name\": \"square_api_payments\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"square_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "square"
          ]
        },
        {
          "specName": "square_api_refunds",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "refund_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Payment id",
                "name": "payment_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Refund status",
                "name": "status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Refund amount",
                "name": "amount_money",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Refund reason",
                "name": "reason",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Refund observations for payments, status, and balance impact.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Square API refunds",
              "spec_name": "square_api_refunds"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "square_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"refund_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Payment id\",\n      \"name\": \"payment_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Refund status\",\n      \"name\": \"status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Refund amount\",\n      \"name\": \"amount_money\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Refund reason\",\n      \"name\": \"reason\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Refund observations for payments, status, and balance impact.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Square API refunds\",\n    \"spec_name\": \"square_api_refunds\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"square_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "square"
          ]
        },
        {
          "specName": "square_api_customers",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "customer_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed given-name reference",
                "name": "given_name_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed or tokenized email reference",
                "name": "email_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Created timestamp",
                "name": "created_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Customer observations for profiles, references, and order/payment lookup.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Square API customers",
              "spec_name": "square_api_customers"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "square_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"customer_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed given-name reference\",\n      \"name\": \"given_name_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed or tokenized email reference\",\n      \"name\": \"email_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Created timestamp\",\n      \"name\": \"created_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Customer observations for profiles, references, and order/payment lookup.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Square API customers\",\n    \"spec_name\": \"square_api_customers\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"square_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "square"
          ]
        },
        {
          "specName": "square_api_inventory_counts",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "inventory_count_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Catalog object id",
                "name": "catalog_object_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Location id",
                "name": "location_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Quantity",
                "name": "quantity",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Inventory count observations by catalog variation and location.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Square API inventory counts",
              "spec_name": "square_api_inventory_counts"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "square_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"inventory_count_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Catalog object id\",\n      \"name\": \"catalog_object_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Location id\",\n      \"name\": \"location_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Quantity\",\n      \"name\": \"quantity\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Inventory count observations by catalog variation and location.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Square API inventory counts\",\n    \"spec_name\": \"square_api_inventory_counts\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"square_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "square"
          ]
        },
        {
          "specName": "square_agent_api_catalog_updates",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "catalog_update_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "catalog_object_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Catalog field name",
                "name": "field_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Current value",
                "name": "current_value",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Proposed value",
                "name": "proposed_value",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed catalog update proposals before outbound Square catalog edits.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Square agent API catalog updates",
              "spec_name": "square_agent_api_catalog_updates",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "square_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"catalog_update_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"catalog_object_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Catalog field name\",\n      \"name\": \"field_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Current value\",\n      \"name\": \"current_value\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Proposed value\",\n      \"name\": \"proposed_value\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed catalog update proposals before outbound Square catalog edits.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Square agent API catalog updates\",\n    \"spec_name\": \"square_agent_api_catalog_updates\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"square_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "square"
          ]
        },
        {
          "specName": "square_agent_api_refund_proposals",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "refund_proposal_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "payment_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Refund amount",
                "name": "refund_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Refund reason",
                "name": "reason",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed refund proposals before outbound Square refund creation.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Square agent API refund proposals",
              "spec_name": "square_agent_api_refund_proposals",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "square_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"refund_proposal_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"payment_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Refund amount\",\n      \"name\": \"refund_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Refund reason\",\n      \"name\": \"reason\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed refund proposals before outbound Square refund creation.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Square agent API refund proposals\",\n    \"spec_name\": \"square_agent_api_refund_proposals\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"square_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "square"
          ]
        },
        {
          "specName": "square_api_locations",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "location_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Location name",
                "name": "location_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Location status",
                "name": "status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Location time zone",
                "name": "timezone",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Location observations for POS, inventory, payments, and staff operations.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Square API locations",
              "spec_name": "square_api_locations"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "square_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"location_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Location name\",\n      \"name\": \"location_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Location status\",\n      \"name\": \"status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Location time zone\",\n      \"name\": \"timezone\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Location observations for POS, inventory, payments, and staff operations.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Square API locations\",\n    \"spec_name\": \"square_api_locations\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"square_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "square"
          ]
        },
        {
          "specName": "square_api_invoices",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "invoice_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Location id",
                "name": "location_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Order id",
                "name": "order_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Customer id",
                "name": "customer_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Invoice status",
                "name": "status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Amount due",
                "name": "amount_due",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Invoice observations for order-linked customer billing and payment schedules.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Square API invoices",
              "spec_name": "square_api_invoices"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "square_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"invoice_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Location id\",\n      \"name\": \"location_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Order id\",\n      \"name\": \"order_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Customer id\",\n      \"name\": \"customer_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Invoice status\",\n      \"name\": \"status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Amount due\",\n      \"name\": \"amount_due\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Invoice observations for order-linked customer billing and payment schedules.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Square API invoices\",\n    \"spec_name\": \"square_api_invoices\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"square_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "square"
          ]
        },
        {
          "specName": "square_api_subscriptions",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "subscription_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Customer id",
                "name": "customer_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Location id",
                "name": "location_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plan variation id",
                "name": "plan_variation_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Subscription status",
                "name": "status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Subscription observations for recurring revenue lifecycle and plan changes.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Square API subscriptions",
              "spec_name": "square_api_subscriptions"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "square_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"subscription_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Customer id\",\n      \"name\": \"customer_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Location id\",\n      \"name\": \"location_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plan variation id\",\n      \"name\": \"plan_variation_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Subscription status\",\n      \"name\": \"status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Subscription observations for recurring revenue lifecycle and plan changes.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Square API subscriptions\",\n    \"spec_name\": \"square_api_subscriptions\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"square_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "square"
          ]
        },
        {
          "specName": "square_api_disputes",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "dispute_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Payment id",
                "name": "payment_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Location id",
                "name": "location_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Dispute reason",
                "name": "reason",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Dispute state",
                "name": "state",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Dispute amount",
                "name": "amount_money",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Dispute observations for chargeback evidence and resolution follow-up.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Square API disputes",
              "spec_name": "square_api_disputes"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "square_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"dispute_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Payment id\",\n      \"name\": \"payment_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Location id\",\n      \"name\": \"location_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Dispute reason\",\n      \"name\": \"reason\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Dispute state\",\n      \"name\": \"state\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Dispute amount\",\n      \"name\": \"amount_money\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Dispute observations for chargeback evidence and resolution follow-up.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Square API disputes\",\n    \"spec_name\": \"square_api_disputes\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"square_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "square"
          ]
        },
        {
          "specName": "square_api_payouts",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "payout_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Location id",
                "name": "location_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Payout status",
                "name": "status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Arrival date",
                "name": "arrival_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Payout amount",
                "name": "amount_money",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Payout observations for deposits, withdrawals, and seller cash reconciliation.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Square API payouts",
              "spec_name": "square_api_payouts"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "square_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"payout_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Location id\",\n      \"name\": \"location_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Payout status\",\n      \"name\": \"status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Arrival date\",\n      \"name\": \"arrival_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Payout amount\",\n      \"name\": \"amount_money\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Payout observations for deposits, withdrawals, and seller cash reconciliation.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Square API payouts\",\n    \"spec_name\": \"square_api_payouts\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"square_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "square"
          ]
        },
        {
          "specName": "square_api_gift_cards",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "gift_card_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Gift account number source",
                "name": "gan_source",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Gift card state",
                "name": "state",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Gift card balance",
                "name": "balance_money",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Gift card observations for balance, activation, redemption, and liability tracking.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Square API gift cards",
              "spec_name": "square_api_gift_cards"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "square_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"gift_card_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Gift account number source\",\n      \"name\": \"gan_source\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Gift card state\",\n      \"name\": \"state\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Gift card balance\",\n      \"name\": \"balance_money\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Gift card observations for balance, activation, redemption, and liability tracking.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Square API gift cards\",\n    \"spec_name\": \"square_api_gift_cards\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"square_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "square"
          ]
        },
        {
          "specName": "square_api_team_members",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "team_member_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Location ids",
                "name": "location_ids",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Team member status",
                "name": "status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed or tokenized email reference",
                "name": "email_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Team member observations for staff identity, status, and labor operations.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Square API team members",
              "spec_name": "square_api_team_members"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "square_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"team_member_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Location ids\",\n      \"name\": \"location_ids\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Team member status\",\n      \"name\": \"status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed or tokenized email reference\",\n      \"name\": \"email_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Team member observations for staff identity, status, and labor operations.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Square API team members\",\n    \"spec_name\": \"square_api_team_members\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"square_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "square"
          ]
        },
        {
          "specName": "square_api_bookings",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "booking_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Customer id",
                "name": "customer_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Location id",
                "name": "location_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Appointment segment count",
                "name": "appointment_segment_count",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Booking start timestamp",
                "name": "start_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Booking status",
                "name": "status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Booking observations for appointment scheduling and service operations.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Square API bookings",
              "spec_name": "square_api_bookings"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "square_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"booking_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Customer id\",\n      \"name\": \"customer_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Location id\",\n      \"name\": \"location_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Appointment segment count\",\n      \"name\": \"appointment_segment_count\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Booking start timestamp\",\n      \"name\": \"start_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Booking status\",\n      \"name\": \"status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Booking observations for appointment scheduling and service operations.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Square API bookings\",\n    \"spec_name\": \"square_api_bookings\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"square_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "square"
          ]
        }
      ]
    },
    {
      "id": "toast_restaurant_library",
      "type": "collection",
      "domains": [
        "operations",
        "billing"
      ],
      "systems": [
        "toast"
      ],
      "version": "1.0.0",
      "summary": "Toast restaurant operations specs for restaurants, menus, orders, payments, employees, time entries, and governed order/tip updates where supported.",
      "coverageStatus": "Core",
      "coverageNotes": "Covers restaurant setup, menus, orders, payments, employees, labor/time entries, discounts, dining/service areas, jobs, and cash movement.",
      "sourceDocs": [
        {
          "label": "Toast API reference",
          "url": "https://doc.toasttab.com/openapi/"
        }
      ],
      "nextObjects": [
        "menu_availability",
        "prep_stations",
        "gift_cards",
        "loyalty",
        "house_accounts",
        "kitchen_timings"
      ],
      "omittedObjects": [
        "unsupported outbound edits",
        "raw guest PII",
        "device-level POS state"
      ],
      "needs": [
        "A Toast agent/operator role. The generated calls use toast_agent."
      ],
      "usefulFor": [
        "Restaurant menu memory",
        "Order and payment review",
        "Labor and time-entry analysis",
        "Tip adjustment review",
        "Restaurant operations follow-up"
      ],
      "extendWith": [
        "Kitchen/service issue specs",
        "Menu availability expectations",
        "Payroll export specs"
      ],
      "searchTerms": [
        "toast",
        "restaurant",
        "menus",
        "orders",
        "checks",
        "payments",
        "employees",
        "labor",
        "time entries",
        "tips"
      ],
      "links": [
        {
          "from": "toast_agent_api_order_updates",
          "to": "toast_api_orders",
          "kind": "source_link",
          "description": "Order update proposals cite the current order observation."
        },
        {
          "from": "toast_agent_api_tip_adjustments",
          "to": "toast_api_payments",
          "kind": "source_link",
          "description": "Tip adjustment proposals cite the current payment observation."
        }
      ],
      "installedSpecs": [
        {
          "id": "toast_api_restaurants",
          "domain": "Observation",
          "purpose": "Restaurant setup observations.",
          "systems": [
            "toast"
          ]
        },
        {
          "id": "toast_api_menus",
          "domain": "Observation",
          "purpose": "Menu hierarchy observations.",
          "systems": [
            "toast"
          ]
        },
        {
          "id": "toast_api_orders",
          "domain": "Observation",
          "purpose": "Guest order observations.",
          "systems": [
            "toast"
          ]
        },
        {
          "id": "toast_api_payments",
          "domain": "Observation",
          "purpose": "Order payment observations.",
          "systems": [
            "toast"
          ]
        },
        {
          "id": "toast_api_employees",
          "domain": "Observation",
          "purpose": "Employee observations.",
          "systems": [
            "toast"
          ]
        },
        {
          "id": "toast_api_time_entries",
          "domain": "Observation",
          "purpose": "Labor time-entry observations.",
          "systems": [
            "toast"
          ]
        },
        {
          "id": "toast_agent_api_order_updates",
          "domain": "Commitment workflow",
          "purpose": "Governed order updates where supported.",
          "systems": [
            "toast"
          ]
        },
        {
          "id": "toast_agent_api_tip_adjustments",
          "domain": "Commitment workflow",
          "purpose": "Governed tip adjustments where supported.",
          "systems": [
            "toast"
          ]
        },
        {
          "id": "toast_api_discounts",
          "domain": "Observation",
          "purpose": "Discount observations.",
          "systems": [
            "toast"
          ]
        },
        {
          "id": "toast_api_dining_options",
          "domain": "Observation",
          "purpose": "Dining option observations.",
          "systems": [
            "toast"
          ]
        },
        {
          "id": "toast_api_service_areas",
          "domain": "Observation",
          "purpose": "Service area observations.",
          "systems": [
            "toast"
          ]
        },
        {
          "id": "toast_api_jobs",
          "domain": "Observation",
          "purpose": "Labor job observations.",
          "systems": [
            "toast"
          ]
        },
        {
          "id": "toast_api_cash_entries",
          "domain": "Observation",
          "purpose": "Cash entry observations.",
          "systems": [
            "toast"
          ]
        },
        {
          "id": "toast_api_cash_deposits",
          "domain": "Observation",
          "purpose": "Cash deposit observations.",
          "systems": [
            "toast"
          ]
        }
      ],
      "createSpecPayloads": [
        {
          "specName": "toast_api_restaurants",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "restaurant_guid",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Restaurant name",
                "name": "restaurant_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Management group guid",
                "name": "management_group_guid",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Restaurant time zone",
                "name": "time_zone",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Restaurant configuration observations for locations and operational setup.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Toast API restaurants",
              "spec_name": "toast_api_restaurants"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "toast_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"restaurant_guid\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Restaurant name\",\n      \"name\": \"restaurant_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Management group guid\",\n      \"name\": \"management_group_guid\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Restaurant time zone\",\n      \"name\": \"time_zone\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Restaurant configuration observations for locations and operational setup.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Toast API restaurants\",\n    \"spec_name\": \"toast_api_restaurants\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"toast_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "toast"
          ]
        },
        {
          "specName": "toast_api_menus",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "menu_snapshot_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Restaurant guid",
                "name": "restaurant_guid",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Menu count",
                "name": "menu_count",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Menu item count",
                "name": "menu_item_count",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Modifier count",
                "name": "modifier_count",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Menu hierarchy observations for menus, groups, menu items, modifier groups, and modifiers.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Toast API menus",
              "spec_name": "toast_api_menus"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "toast_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"menu_snapshot_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Restaurant guid\",\n      \"name\": \"restaurant_guid\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Menu count\",\n      \"name\": \"menu_count\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Menu item count\",\n      \"name\": \"menu_item_count\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Modifier count\",\n      \"name\": \"modifier_count\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Menu hierarchy observations for menus, groups, menu items, modifier groups, and modifiers.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Toast API menus\",\n    \"spec_name\": \"toast_api_menus\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"toast_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "toast"
          ]
        },
        {
          "specName": "toast_api_orders",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "order_guid",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Restaurant guid",
                "name": "restaurant_guid",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Business date",
                "name": "business_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Opened timestamp",
                "name": "opened_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Order status",
                "name": "order_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Order total",
                "name": "total_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Guest order observations including checks, selected items, prices, discounts, payments, and customer data.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Toast API orders",
              "spec_name": "toast_api_orders"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "toast_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"order_guid\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Restaurant guid\",\n      \"name\": \"restaurant_guid\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Business date\",\n      \"name\": \"business_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Opened timestamp\",\n      \"name\": \"opened_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Order status\",\n      \"name\": \"order_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Order total\",\n      \"name\": \"total_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Guest order observations including checks, selected items, prices, discounts, payments, and customer data.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Toast API orders\",\n    \"spec_name\": \"toast_api_orders\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"toast_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "toast"
          ]
        },
        {
          "specName": "toast_api_payments",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "payment_guid",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Order guid",
                "name": "order_guid",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Check guid",
                "name": "check_guid",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Payment status",
                "name": "payment_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Payment amount",
                "name": "amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Tip amount",
                "name": "tip_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Payment observations from Toast orders and checks for reconciliation.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Toast API payments",
              "spec_name": "toast_api_payments"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "toast_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"payment_guid\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Order guid\",\n      \"name\": \"order_guid\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Check guid\",\n      \"name\": \"check_guid\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Payment status\",\n      \"name\": \"payment_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Payment amount\",\n      \"name\": \"amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Tip amount\",\n      \"name\": \"tip_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Payment observations from Toast orders and checks for reconciliation.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Toast API payments\",\n    \"spec_name\": \"toast_api_payments\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"toast_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "toast"
          ]
        },
        {
          "specName": "toast_api_employees",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "employee_guid",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Restaurant guid",
                "name": "restaurant_guid",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Employee number",
                "name": "employee_number",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Employee status",
                "name": "status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Employee observations for labor, roles, jobs, and restaurant operations.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Toast API employees",
              "spec_name": "toast_api_employees"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "toast_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"employee_guid\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Restaurant guid\",\n      \"name\": \"restaurant_guid\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Employee number\",\n      \"name\": \"employee_number\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Employee status\",\n      \"name\": \"status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Employee observations for labor, roles, jobs, and restaurant operations.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Toast API employees\",\n    \"spec_name\": \"toast_api_employees\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"toast_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "toast"
          ]
        },
        {
          "specName": "toast_api_time_entries",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "time_entry_guid",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Employee guid",
                "name": "employee_guid",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Restaurant guid",
                "name": "restaurant_guid",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Clock-in timestamp",
                "name": "in_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Clock-out timestamp",
                "name": "out_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Job guid",
                "name": "job_guid",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Labor time-entry observations for shifts, clock-in/out, breaks, declared tips, and sales summaries.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Toast API time entries",
              "spec_name": "toast_api_time_entries"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "toast_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"time_entry_guid\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Employee guid\",\n      \"name\": \"employee_guid\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Restaurant guid\",\n      \"name\": \"restaurant_guid\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Clock-in timestamp\",\n      \"name\": \"in_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Clock-out timestamp\",\n      \"name\": \"out_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Job guid\",\n      \"name\": \"job_guid\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Labor time-entry observations for shifts, clock-in/out, breaks, declared tips, and sales summaries.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Toast API time entries\",\n    \"spec_name\": \"toast_api_time_entries\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"toast_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "toast"
          ]
        },
        {
          "specName": "toast_agent_api_order_updates",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "order_update_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "order_guid",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Check guid",
                "name": "check_guid",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Requested update",
                "name": "requested_update",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed order update proposals before outbound Toast order edits where supported.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Toast agent API order updates",
              "spec_name": "toast_agent_api_order_updates",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "toast_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"order_update_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"order_guid\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Check guid\",\n      \"name\": \"check_guid\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested update\",\n      \"name\": \"requested_update\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed order update proposals before outbound Toast order edits where supported.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Toast agent API order updates\",\n    \"spec_name\": \"toast_agent_api_order_updates\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"toast_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "toast"
          ]
        },
        {
          "specName": "toast_agent_api_tip_adjustments",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "tip_adjustment_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "payment_guid",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Current tip amount",
                "name": "current_tip_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Proposed tip amount",
                "name": "proposed_tip_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed tip adjustment proposals before outbound Toast payment tip updates where supported.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Toast agent API tip adjustments",
              "spec_name": "toast_agent_api_tip_adjustments",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "toast_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"tip_adjustment_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"payment_guid\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Current tip amount\",\n      \"name\": \"current_tip_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Proposed tip amount\",\n      \"name\": \"proposed_tip_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed tip adjustment proposals before outbound Toast payment tip updates where supported.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Toast agent API tip adjustments\",\n    \"spec_name\": \"toast_agent_api_tip_adjustments\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"toast_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "toast"
          ]
        },
        {
          "specName": "toast_api_discounts",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "discount_guid",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Restaurant guid",
                "name": "restaurant_guid",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Discount name",
                "name": "discount_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Discount type",
                "name": "discount_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Active flag",
                "name": "active",
                "tests": [],
                "type": "boolean"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Discount observations for menu/order promotion analysis and margin review.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Toast API discounts",
              "spec_name": "toast_api_discounts"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "toast_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"discount_guid\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Restaurant guid\",\n      \"name\": \"restaurant_guid\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Discount name\",\n      \"name\": \"discount_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Discount type\",\n      \"name\": \"discount_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Active flag\",\n      \"name\": \"active\",\n      \"tests\": [],\n      \"type\": \"boolean\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Discount observations for menu/order promotion analysis and margin review.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Toast API discounts\",\n    \"spec_name\": \"toast_api_discounts\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"toast_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "toast"
          ]
        },
        {
          "specName": "toast_api_dining_options",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "dining_option_guid",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Restaurant guid",
                "name": "restaurant_guid",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Dining option name",
                "name": "name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Dining option behavior",
                "name": "behavior",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Dining option observations for service-mode routing and order analysis.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Toast API dining options",
              "spec_name": "toast_api_dining_options"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "toast_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"dining_option_guid\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Restaurant guid\",\n      \"name\": \"restaurant_guid\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Dining option name\",\n      \"name\": \"name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Dining option behavior\",\n      \"name\": \"behavior\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Dining option observations for service-mode routing and order analysis.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Toast API dining options\",\n    \"spec_name\": \"toast_api_dining_options\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"toast_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "toast"
          ]
        },
        {
          "specName": "toast_api_service_areas",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "service_area_guid",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Restaurant guid",
                "name": "restaurant_guid",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Service area name",
                "name": "name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Table count",
                "name": "table_count",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Service area observations for restaurant floor/service operations.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Toast API service areas",
              "spec_name": "toast_api_service_areas"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "toast_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"service_area_guid\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Restaurant guid\",\n      \"name\": \"restaurant_guid\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Service area name\",\n      \"name\": \"name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Table count\",\n      \"name\": \"table_count\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Service area observations for restaurant floor/service operations.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Toast API service areas\",\n    \"spec_name\": \"toast_api_service_areas\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"toast_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "toast"
          ]
        },
        {
          "specName": "toast_api_jobs",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "job_guid",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Restaurant guid",
                "name": "restaurant_guid",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Job title",
                "name": "job_title",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Wage type",
                "name": "wage_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Job observations for labor role, wage, and shift reporting.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Toast API jobs",
              "spec_name": "toast_api_jobs"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "toast_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"job_guid\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Restaurant guid\",\n      \"name\": \"restaurant_guid\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Job title\",\n      \"name\": \"job_title\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Wage type\",\n      \"name\": \"wage_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Job observations for labor role, wage, and shift reporting.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Toast API jobs\",\n    \"spec_name\": \"toast_api_jobs\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"toast_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "toast"
          ]
        },
        {
          "specName": "toast_api_cash_entries",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "cash_entry_guid",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Restaurant guid",
                "name": "restaurant_guid",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Business date",
                "name": "business_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Cash entry type",
                "name": "entry_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Entry amount",
                "name": "amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Cash entry observations for paid-in, paid-out, cash drawer, and non-standard cash movement review.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Toast API cash entries",
              "spec_name": "toast_api_cash_entries"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "toast_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"cash_entry_guid\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Restaurant guid\",\n      \"name\": \"restaurant_guid\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Business date\",\n      \"name\": \"business_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Cash entry type\",\n      \"name\": \"entry_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Entry amount\",\n      \"name\": \"amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Cash entry observations for paid-in, paid-out, cash drawer, and non-standard cash movement review.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Toast API cash entries\",\n    \"spec_name\": \"toast_api_cash_entries\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"toast_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "toast"
          ]
        },
        {
          "specName": "toast_api_cash_deposits",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "cash_deposit_guid",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Restaurant guid",
                "name": "restaurant_guid",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Business date",
                "name": "business_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Deposit status",
                "name": "deposit_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Deposit amount",
                "name": "amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Cash deposit observations for cash removed from restaurants and deposited externally.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Toast API cash deposits",
              "spec_name": "toast_api_cash_deposits"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "toast_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"cash_deposit_guid\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Restaurant guid\",\n      \"name\": \"restaurant_guid\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Business date\",\n      \"name\": \"business_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Deposit status\",\n      \"name\": \"deposit_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Deposit amount\",\n      \"name\": \"amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Cash deposit observations for cash removed from restaurants and deposited externally.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Toast API cash deposits\",\n    \"spec_name\": \"toast_api_cash_deposits\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"toast_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "toast"
          ]
        }
      ]
    },
    {
      "id": "quickbooks_accounting_library",
      "type": "collection",
      "domains": [
        "finance",
        "billing"
      ],
      "systems": [
        "quickbooks"
      ],
      "version": "1.0.0",
      "summary": "QuickBooks Online accounting specs for company setup, chart of accounts, customers, vendors, items, AR/AP transactions, purchases, deposits, journal entries, attachments, change events, and governed accounting updates.",
      "coverageStatus": "Extended",
      "coverageNotes": "Covers the core QuickBooks Online accounting API entities used for SMB finance operations. It does not mirror every report, payroll object, or bank-feed review surface.",
      "sourceDocs": [
        {
          "label": "QuickBooks Online API Explorer",
          "url": "https://developer.intuit.com/app/developer/qbo/docs/get-started/get-started-with-the-api-explorer"
        },
        {
          "label": "Explore the QuickBooks Online API",
          "url": "https://developer.intuit.com/app/developer/qbo/docs/learn/explore-the-quickbooks-online-api"
        }
      ],
      "nextObjects": [
        "estimates",
        "statements",
        "budgets",
        "reports",
        "recurring_transactions",
        "payment_methods",
        "terms",
        "exchange_rates"
      ],
      "omittedObjects": [
        "payroll details",
        "raw bank-feed review items",
        "OAuth/token management",
        "full financial reports"
      ],
      "needs": [
        "A QuickBooks agent/operator role. The generated calls use quickbooks_agent."
      ],
      "usefulFor": [
        "Accounting system memory",
        "AR/AP reconciliation",
        "Commerce-to-accounting handoff",
        "Journal entry review",
        "Customer/vendor master-data governance"
      ],
      "extendWith": [
        "Links from Shopify/Stripe/Square deposits into QuickBooks deposits or journal entries",
        "Bill.com payment confirmations into QuickBooks bill payments",
        "Budget and class/department planning specs"
      ],
      "searchTerms": [
        "quickbooks",
        "quickbooks online",
        "qbo",
        "accounting",
        "chart of accounts",
        "customers",
        "vendors",
        "invoices",
        "bills",
        "journal entries",
        "deposits",
        "change data capture"
      ],
      "links": [
        {
          "from": "quickbooks_agent_api_invoice_updates",
          "to": "quickbooks_api_invoices",
          "kind": "source_link",
          "description": "Invoice update proposals cite the current QuickBooks invoice observation."
        },
        {
          "from": "quickbooks_agent_api_bill_updates",
          "to": "quickbooks_api_bills",
          "kind": "source_link",
          "description": "Bill update proposals cite the current QuickBooks bill observation."
        },
        {
          "from": "quickbooks_agent_api_journal_entry_proposals",
          "to": "quickbooks_api_journal_entries",
          "kind": "source_link",
          "description": "Journal-entry proposals cite existing journal entries or related accounting observations."
        },
        {
          "from": "quickbooks_agent_api_customer_vendor_updates",
          "to": "quickbooks_api_customers",
          "kind": "source_link",
          "description": "Customer master-data updates cite current customer observations."
        },
        {
          "from": "quickbooks_agent_api_customer_vendor_updates",
          "to": "quickbooks_api_vendors",
          "kind": "source_link",
          "description": "Vendor master-data updates cite current vendor observations."
        }
      ],
      "installedSpecs": [
        {
          "id": "quickbooks_api_company_info",
          "domain": "Observation",
          "purpose": "Company setup observations.",
          "systems": [
            "quickbooks"
          ]
        },
        {
          "id": "quickbooks_api_preferences",
          "domain": "Observation",
          "purpose": "Company preference observations.",
          "systems": [
            "quickbooks"
          ]
        },
        {
          "id": "quickbooks_api_accounts",
          "domain": "Observation",
          "purpose": "Chart of accounts observations.",
          "systems": [
            "quickbooks"
          ]
        },
        {
          "id": "quickbooks_api_customers",
          "domain": "Observation",
          "purpose": "Customer master-data observations.",
          "systems": [
            "quickbooks"
          ]
        },
        {
          "id": "quickbooks_api_vendors",
          "domain": "Observation",
          "purpose": "Vendor master-data observations.",
          "systems": [
            "quickbooks"
          ]
        },
        {
          "id": "quickbooks_api_employees",
          "domain": "Observation",
          "purpose": "Employee reference observations.",
          "systems": [
            "quickbooks"
          ]
        },
        {
          "id": "quickbooks_api_items",
          "domain": "Observation",
          "purpose": "Product and service item observations.",
          "systems": [
            "quickbooks"
          ]
        },
        {
          "id": "quickbooks_api_tax_codes",
          "domain": "Observation",
          "purpose": "Tax code observations.",
          "systems": [
            "quickbooks"
          ]
        },
        {
          "id": "quickbooks_api_classes_departments",
          "domain": "Observation",
          "purpose": "Class and department observations.",
          "systems": [
            "quickbooks"
          ]
        },
        {
          "id": "quickbooks_api_invoices",
          "domain": "Observation",
          "purpose": "AR invoice observations.",
          "systems": [
            "quickbooks"
          ]
        },
        {
          "id": "quickbooks_api_payments",
          "domain": "Observation",
          "purpose": "Customer payment observations.",
          "systems": [
            "quickbooks"
          ]
        },
        {
          "id": "quickbooks_api_sales_receipts",
          "domain": "Observation",
          "purpose": "Sales receipt observations.",
          "systems": [
            "quickbooks"
          ]
        },
        {
          "id": "quickbooks_api_credit_memos",
          "domain": "Observation",
          "purpose": "Customer credit memo observations.",
          "systems": [
            "quickbooks"
          ]
        },
        {
          "id": "quickbooks_api_refund_receipts",
          "domain": "Observation",
          "purpose": "Customer refund receipt observations.",
          "systems": [
            "quickbooks"
          ]
        },
        {
          "id": "quickbooks_api_bills",
          "domain": "Observation",
          "purpose": "AP bill observations.",
          "systems": [
            "quickbooks"
          ]
        },
        {
          "id": "quickbooks_api_bill_payments",
          "domain": "Observation",
          "purpose": "Bill payment observations.",
          "systems": [
            "quickbooks"
          ]
        },
        {
          "id": "quickbooks_api_vendor_credits",
          "domain": "Observation",
          "purpose": "Vendor credit observations.",
          "systems": [
            "quickbooks"
          ]
        },
        {
          "id": "quickbooks_api_purchases",
          "domain": "Observation",
          "purpose": "Purchase and expense observations.",
          "systems": [
            "quickbooks"
          ]
        },
        {
          "id": "quickbooks_api_purchase_orders",
          "domain": "Observation",
          "purpose": "Purchase order observations.",
          "systems": [
            "quickbooks"
          ]
        },
        {
          "id": "quickbooks_api_deposits",
          "domain": "Observation",
          "purpose": "Deposit observations.",
          "systems": [
            "quickbooks"
          ]
        },
        {
          "id": "quickbooks_api_transfers",
          "domain": "Observation",
          "purpose": "Transfer observations.",
          "systems": [
            "quickbooks"
          ]
        },
        {
          "id": "quickbooks_api_journal_entries",
          "domain": "Observation",
          "purpose": "Journal entry observations.",
          "systems": [
            "quickbooks"
          ]
        },
        {
          "id": "quickbooks_api_time_activities",
          "domain": "Observation",
          "purpose": "Time activity observations.",
          "systems": [
            "quickbooks"
          ]
        },
        {
          "id": "quickbooks_api_attachments",
          "domain": "Observation",
          "purpose": "Attachment observations.",
          "systems": [
            "quickbooks"
          ]
        },
        {
          "id": "quickbooks_api_change_events",
          "domain": "Observation",
          "purpose": "Change Data Capture observations.",
          "systems": [
            "quickbooks"
          ]
        },
        {
          "id": "quickbooks_agent_api_invoice_updates",
          "domain": "Commitment workflow",
          "purpose": "Governed invoice updates.",
          "systems": [
            "quickbooks"
          ]
        },
        {
          "id": "quickbooks_agent_api_bill_updates",
          "domain": "Commitment workflow",
          "purpose": "Governed bill updates.",
          "systems": [
            "quickbooks"
          ]
        },
        {
          "id": "quickbooks_agent_api_journal_entry_proposals",
          "domain": "Commitment workflow",
          "purpose": "Governed journal entry proposals.",
          "systems": [
            "quickbooks"
          ]
        },
        {
          "id": "quickbooks_agent_api_customer_vendor_updates",
          "domain": "Commitment workflow",
          "purpose": "Governed customer/vendor updates.",
          "systems": [
            "quickbooks"
          ]
        }
      ],
      "createSpecPayloads": [
        {
          "specName": "quickbooks_api_company_info",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "company_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Company name",
                "name": "company_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Legal name",
                "name": "legal_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Country",
                "name": "country",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Home currency",
                "name": "home_currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Fiscal year start month",
                "name": "fiscal_year_start_month",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Company setup observations for accounting identity, currency, and fiscal settings.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "QuickBooks API company info",
              "spec_name": "quickbooks_api_company_info"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "quickbooks_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"company_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Company name\",\n      \"name\": \"company_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Legal name\",\n      \"name\": \"legal_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Country\",\n      \"name\": \"country\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Home currency\",\n      \"name\": \"home_currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Fiscal year start month\",\n      \"name\": \"fiscal_year_start_month\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Company setup observations for accounting identity, currency, and fiscal settings.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"QuickBooks API company info\",\n    \"spec_name\": \"quickbooks_api_company_info\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"quickbooks_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "quickbooks"
          ]
        },
        {
          "specName": "quickbooks_api_preferences",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "preferences_snapshot_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Company id",
                "name": "company_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Accounting method",
                "name": "accounting_method",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Tax enabled flag",
                "name": "tax_enabled",
                "tests": [],
                "type": "boolean"
              },
              {
                "description": "Multicurrency enabled flag",
                "name": "multicurrency_enabled",
                "tests": [],
                "type": "boolean"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Company preferences observations for accounting, sales forms, tax, and feature settings.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "QuickBooks API preferences",
              "spec_name": "quickbooks_api_preferences"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "quickbooks_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"preferences_snapshot_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Company id\",\n      \"name\": \"company_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Accounting method\",\n      \"name\": \"accounting_method\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Tax enabled flag\",\n      \"name\": \"tax_enabled\",\n      \"tests\": [],\n      \"type\": \"boolean\"\n    },\n    {\n      \"description\": \"Multicurrency enabled flag\",\n      \"name\": \"multicurrency_enabled\",\n      \"tests\": [],\n      \"type\": \"boolean\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Company preferences observations for accounting, sales forms, tax, and feature settings.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"QuickBooks API preferences\",\n    \"spec_name\": \"quickbooks_api_preferences\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"quickbooks_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "quickbooks"
          ]
        },
        {
          "specName": "quickbooks_api_accounts",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "account_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Account name",
                "name": "account_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Account type",
                "name": "account_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Account classification",
                "name": "classification",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Active flag",
                "name": "active",
                "tests": [],
                "type": "boolean"
              },
              {
                "description": "Current balance",
                "name": "current_balance",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Chart of accounts observations for general ledger classification and posting review.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "QuickBooks API accounts",
              "spec_name": "quickbooks_api_accounts"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "quickbooks_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"account_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Account name\",\n      \"name\": \"account_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Account type\",\n      \"name\": \"account_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Account classification\",\n      \"name\": \"classification\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Active flag\",\n      \"name\": \"active\",\n      \"tests\": [],\n      \"type\": \"boolean\"\n    },\n    {\n      \"description\": \"Current balance\",\n      \"name\": \"current_balance\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Chart of accounts observations for general ledger classification and posting review.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"QuickBooks API accounts\",\n    \"spec_name\": \"quickbooks_api_accounts\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"quickbooks_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "quickbooks"
          ]
        },
        {
          "specName": "quickbooks_api_customers",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "customer_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Display name",
                "name": "display_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed or tokenized email reference",
                "name": "email_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Active flag",
                "name": "active",
                "tests": [],
                "type": "boolean"
              },
              {
                "description": "Open customer balance",
                "name": "balance",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Customer observations for AR, invoicing, payments, and project/job references.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "QuickBooks API customers",
              "spec_name": "quickbooks_api_customers"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "quickbooks_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"customer_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Display name\",\n      \"name\": \"display_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed or tokenized email reference\",\n      \"name\": \"email_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Active flag\",\n      \"name\": \"active\",\n      \"tests\": [],\n      \"type\": \"boolean\"\n    },\n    {\n      \"description\": \"Open customer balance\",\n      \"name\": \"balance\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Customer observations for AR, invoicing, payments, and project/job references.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"QuickBooks API customers\",\n    \"spec_name\": \"quickbooks_api_customers\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"quickbooks_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "quickbooks"
          ]
        },
        {
          "specName": "quickbooks_api_vendors",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "vendor_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Display name",
                "name": "display_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed or tokenized email reference",
                "name": "email_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Active flag",
                "name": "active",
                "tests": [],
                "type": "boolean"
              },
              {
                "description": "Open vendor balance",
                "name": "balance",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Vendor observations for AP, bills, purchases, and vendor credits.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "QuickBooks API vendors",
              "spec_name": "quickbooks_api_vendors"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "quickbooks_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"vendor_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Display name\",\n      \"name\": \"display_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed or tokenized email reference\",\n      \"name\": \"email_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Active flag\",\n      \"name\": \"active\",\n      \"tests\": [],\n      \"type\": \"boolean\"\n    },\n    {\n      \"description\": \"Open vendor balance\",\n      \"name\": \"balance\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Vendor observations for AP, bills, purchases, and vendor credits.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"QuickBooks API vendors\",\n    \"spec_name\": \"quickbooks_api_vendors\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"quickbooks_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "quickbooks"
          ]
        },
        {
          "specName": "quickbooks_api_employees",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "employee_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Display name",
                "name": "display_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Employee number",
                "name": "employee_number",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Active flag",
                "name": "active",
                "tests": [],
                "type": "boolean"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Employee observations for payroll-adjacent accounting, time activity, and reimbursement references.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "QuickBooks API employees",
              "spec_name": "quickbooks_api_employees"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "quickbooks_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"employee_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Display name\",\n      \"name\": \"display_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Employee number\",\n      \"name\": \"employee_number\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Active flag\",\n      \"name\": \"active\",\n      \"tests\": [],\n      \"type\": \"boolean\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Employee observations for payroll-adjacent accounting, time activity, and reimbursement references.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"QuickBooks API employees\",\n    \"spec_name\": \"quickbooks_api_employees\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"quickbooks_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "quickbooks"
          ]
        },
        {
          "specName": "quickbooks_api_items",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "item_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Item name",
                "name": "item_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Item type",
                "name": "item_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "SKU",
                "name": "sku",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Active flag",
                "name": "active",
                "tests": [],
                "type": "boolean"
              },
              {
                "description": "Unit price",
                "name": "unit_price",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Product and service item observations for sales forms, purchases, inventory, and account mappings.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "QuickBooks API items",
              "spec_name": "quickbooks_api_items"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "quickbooks_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"item_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Item name\",\n      \"name\": \"item_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Item type\",\n      \"name\": \"item_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"SKU\",\n      \"name\": \"sku\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Active flag\",\n      \"name\": \"active\",\n      \"tests\": [],\n      \"type\": \"boolean\"\n    },\n    {\n      \"description\": \"Unit price\",\n      \"name\": \"unit_price\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Product and service item observations for sales forms, purchases, inventory, and account mappings.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"QuickBooks API items\",\n    \"spec_name\": \"quickbooks_api_items\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"quickbooks_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "quickbooks"
          ]
        },
        {
          "specName": "quickbooks_api_tax_codes",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "tax_code_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Tax code name",
                "name": "tax_code_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Active flag",
                "name": "active",
                "tests": [],
                "type": "boolean"
              },
              {
                "description": "Taxable flag",
                "name": "taxable",
                "tests": [],
                "type": "boolean"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Tax code observations for invoice, bill, purchase, and sales receipt tax handling.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "QuickBooks API tax codes",
              "spec_name": "quickbooks_api_tax_codes"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "quickbooks_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"tax_code_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Tax code name\",\n      \"name\": \"tax_code_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Active flag\",\n      \"name\": \"active\",\n      \"tests\": [],\n      \"type\": \"boolean\"\n    },\n    {\n      \"description\": \"Taxable flag\",\n      \"name\": \"taxable\",\n      \"tests\": [],\n      \"type\": \"boolean\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Tax code observations for invoice, bill, purchase, and sales receipt tax handling.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"QuickBooks API tax codes\",\n    \"spec_name\": \"quickbooks_api_tax_codes\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"quickbooks_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "quickbooks"
          ]
        },
        {
          "specName": "quickbooks_api_classes_departments",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "dimension_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "class or department",
                "name": "dimension_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Dimension name",
                "name": "dimension_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Parent dimension id",
                "name": "parent_dimension_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Active flag",
                "name": "active",
                "tests": [],
                "type": "boolean"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Class and department observations for dimensional accounting and management reporting.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "QuickBooks API classes and departments",
              "spec_name": "quickbooks_api_classes_departments"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "quickbooks_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"dimension_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"class or department\",\n      \"name\": \"dimension_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Dimension name\",\n      \"name\": \"dimension_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Parent dimension id\",\n      \"name\": \"parent_dimension_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Active flag\",\n      \"name\": \"active\",\n      \"tests\": [],\n      \"type\": \"boolean\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Class and department observations for dimensional accounting and management reporting.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"QuickBooks API classes and departments\",\n    \"spec_name\": \"quickbooks_api_classes_departments\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"quickbooks_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "quickbooks"
          ]
        },
        {
          "specName": "quickbooks_api_invoices",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "invoice_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Customer id",
                "name": "customer_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Document number",
                "name": "doc_number",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Transaction date",
                "name": "transaction_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Due date",
                "name": "due_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Open balance",
                "name": "balance",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Total amount",
                "name": "total_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Invoice observations for AR, revenue, customer balances, and collection workflows.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "QuickBooks API invoices",
              "spec_name": "quickbooks_api_invoices"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "quickbooks_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"invoice_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Customer id\",\n      \"name\": \"customer_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Document number\",\n      \"name\": \"doc_number\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Transaction date\",\n      \"name\": \"transaction_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Due date\",\n      \"name\": \"due_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Open balance\",\n      \"name\": \"balance\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Total amount\",\n      \"name\": \"total_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Invoice observations for AR, revenue, customer balances, and collection workflows.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"QuickBooks API invoices\",\n    \"spec_name\": \"quickbooks_api_invoices\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"quickbooks_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "quickbooks"
          ]
        },
        {
          "specName": "quickbooks_api_payments",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "payment_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Customer id",
                "name": "customer_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Transaction date",
                "name": "transaction_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Payment amount",
                "name": "total_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Deposit account id",
                "name": "deposit_to_account_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Customer payment observations for AR application, deposits, and reconciliation.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "QuickBooks API payments",
              "spec_name": "quickbooks_api_payments"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "quickbooks_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"payment_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Customer id\",\n      \"name\": \"customer_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Transaction date\",\n      \"name\": \"transaction_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Payment amount\",\n      \"name\": \"total_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Deposit account id\",\n      \"name\": \"deposit_to_account_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Customer payment observations for AR application, deposits, and reconciliation.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"QuickBooks API payments\",\n    \"spec_name\": \"quickbooks_api_payments\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"quickbooks_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "quickbooks"
          ]
        },
        {
          "specName": "quickbooks_api_sales_receipts",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "sales_receipt_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Customer id",
                "name": "customer_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Transaction date",
                "name": "transaction_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Total amount",
                "name": "total_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Deposit account id",
                "name": "deposit_to_account_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Sales receipt observations for immediate-payment sales and commerce imports.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "QuickBooks API sales receipts",
              "spec_name": "quickbooks_api_sales_receipts"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "quickbooks_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"sales_receipt_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Customer id\",\n      \"name\": \"customer_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Transaction date\",\n      \"name\": \"transaction_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Total amount\",\n      \"name\": \"total_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Deposit account id\",\n      \"name\": \"deposit_to_account_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Sales receipt observations for immediate-payment sales and commerce imports.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"QuickBooks API sales receipts\",\n    \"spec_name\": \"quickbooks_api_sales_receipts\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"quickbooks_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "quickbooks"
          ]
        },
        {
          "specName": "quickbooks_api_credit_memos",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "credit_memo_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Customer id",
                "name": "customer_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Transaction date",
                "name": "transaction_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Remaining credit",
                "name": "remaining_credit",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Total amount",
                "name": "total_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Credit memo observations for customer credits and AR adjustments.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "QuickBooks API credit memos",
              "spec_name": "quickbooks_api_credit_memos"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "quickbooks_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"credit_memo_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Customer id\",\n      \"name\": \"customer_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Transaction date\",\n      \"name\": \"transaction_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Remaining credit\",\n      \"name\": \"remaining_credit\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Total amount\",\n      \"name\": \"total_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Credit memo observations for customer credits and AR adjustments.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"QuickBooks API credit memos\",\n    \"spec_name\": \"quickbooks_api_credit_memos\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"quickbooks_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "quickbooks"
          ]
        },
        {
          "specName": "quickbooks_api_refund_receipts",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "refund_receipt_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Customer id",
                "name": "customer_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Transaction date",
                "name": "transaction_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Refund amount",
                "name": "total_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Payment method id",
                "name": "payment_method_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Refund receipt observations for customer refunds and cash impact.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "QuickBooks API refund receipts",
              "spec_name": "quickbooks_api_refund_receipts"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "quickbooks_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"refund_receipt_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Customer id\",\n      \"name\": \"customer_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Transaction date\",\n      \"name\": \"transaction_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Refund amount\",\n      \"name\": \"total_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Payment method id\",\n      \"name\": \"payment_method_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Refund receipt observations for customer refunds and cash impact.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"QuickBooks API refund receipts\",\n    \"spec_name\": \"quickbooks_api_refund_receipts\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"quickbooks_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "quickbooks"
          ]
        },
        {
          "specName": "quickbooks_api_bills",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "bill_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Vendor id",
                "name": "vendor_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Document number",
                "name": "doc_number",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Transaction date",
                "name": "transaction_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Due date",
                "name": "due_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Open balance",
                "name": "balance",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Total amount",
                "name": "total_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Bill observations for AP, vendor balances, due dates, and approval/payment planning.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "QuickBooks API bills",
              "spec_name": "quickbooks_api_bills"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "quickbooks_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"bill_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Vendor id\",\n      \"name\": \"vendor_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Document number\",\n      \"name\": \"doc_number\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Transaction date\",\n      \"name\": \"transaction_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Due date\",\n      \"name\": \"due_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Open balance\",\n      \"name\": \"balance\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Total amount\",\n      \"name\": \"total_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Bill observations for AP, vendor balances, due dates, and approval/payment planning.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"QuickBooks API bills\",\n    \"spec_name\": \"quickbooks_api_bills\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"quickbooks_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "quickbooks"
          ]
        },
        {
          "specName": "quickbooks_api_bill_payments",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "bill_payment_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Vendor id",
                "name": "vendor_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Transaction date",
                "name": "transaction_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Payment amount",
                "name": "total_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Bank account id",
                "name": "bank_account_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Bill payment observations for AP settlement and bank reconciliation.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "QuickBooks API bill payments",
              "spec_name": "quickbooks_api_bill_payments"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "quickbooks_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"bill_payment_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Vendor id\",\n      \"name\": \"vendor_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Transaction date\",\n      \"name\": \"transaction_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Payment amount\",\n      \"name\": \"total_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Bank account id\",\n      \"name\": \"bank_account_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Bill payment observations for AP settlement and bank reconciliation.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"QuickBooks API bill payments\",\n    \"spec_name\": \"quickbooks_api_bill_payments\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"quickbooks_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "quickbooks"
          ]
        },
        {
          "specName": "quickbooks_api_vendor_credits",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "vendor_credit_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Vendor id",
                "name": "vendor_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Transaction date",
                "name": "transaction_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Remaining credit",
                "name": "remaining_credit",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Total amount",
                "name": "total_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Vendor credit observations for AP netting and open-credit review.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "QuickBooks API vendor credits",
              "spec_name": "quickbooks_api_vendor_credits"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "quickbooks_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"vendor_credit_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Vendor id\",\n      \"name\": \"vendor_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Transaction date\",\n      \"name\": \"transaction_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Remaining credit\",\n      \"name\": \"remaining_credit\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Total amount\",\n      \"name\": \"total_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Vendor credit observations for AP netting and open-credit review.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"QuickBooks API vendor credits\",\n    \"spec_name\": \"quickbooks_api_vendor_credits\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"quickbooks_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "quickbooks"
          ]
        },
        {
          "specName": "quickbooks_api_purchases",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "purchase_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Vendor id",
                "name": "vendor_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Expense or asset account id",
                "name": "account_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Payment type",
                "name": "payment_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Transaction date",
                "name": "transaction_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Purchase amount",
                "name": "total_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Purchase/expense observations for card, cash, check, and bank purchases.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "QuickBooks API purchases",
              "spec_name": "quickbooks_api_purchases"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "quickbooks_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"purchase_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Vendor id\",\n      \"name\": \"vendor_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Expense or asset account id\",\n      \"name\": \"account_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Payment type\",\n      \"name\": \"payment_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Transaction date\",\n      \"name\": \"transaction_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Purchase amount\",\n      \"name\": \"total_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Purchase/expense observations for card, cash, check, and bank purchases.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"QuickBooks API purchases\",\n    \"spec_name\": \"quickbooks_api_purchases\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"quickbooks_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "quickbooks"
          ]
        },
        {
          "specName": "quickbooks_api_purchase_orders",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "purchase_order_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Vendor id",
                "name": "vendor_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Document number",
                "name": "doc_number",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Transaction date",
                "name": "transaction_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Purchase order status",
                "name": "status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Total amount",
                "name": "total_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Purchase order observations for AP intake and receiving workflows.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "QuickBooks API purchase orders",
              "spec_name": "quickbooks_api_purchase_orders"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "quickbooks_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"purchase_order_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Vendor id\",\n      \"name\": \"vendor_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Document number\",\n      \"name\": \"doc_number\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Transaction date\",\n      \"name\": \"transaction_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Purchase order status\",\n      \"name\": \"status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Total amount\",\n      \"name\": \"total_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Purchase order observations for AP intake and receiving workflows.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"QuickBooks API purchase orders\",\n    \"spec_name\": \"quickbooks_api_purchase_orders\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"quickbooks_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "quickbooks"
          ]
        },
        {
          "specName": "quickbooks_api_deposits",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "deposit_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Deposit account id",
                "name": "account_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Transaction date",
                "name": "transaction_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Deposit amount",
                "name": "total_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Deposit observations for bank deposits, payment grouping, and reconciliation.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "QuickBooks API deposits",
              "spec_name": "quickbooks_api_deposits"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "quickbooks_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"deposit_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Deposit account id\",\n      \"name\": \"account_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Transaction date\",\n      \"name\": \"transaction_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Deposit amount\",\n      \"name\": \"total_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Deposit observations for bank deposits, payment grouping, and reconciliation.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"QuickBooks API deposits\",\n    \"spec_name\": \"quickbooks_api_deposits\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"quickbooks_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "quickbooks"
          ]
        },
        {
          "specName": "quickbooks_api_transfers",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "transfer_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Source account id",
                "name": "from_account_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Destination account id",
                "name": "to_account_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Transaction date",
                "name": "transaction_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Transfer amount",
                "name": "amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Transfer observations for movement between bank or asset accounts.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "QuickBooks API transfers",
              "spec_name": "quickbooks_api_transfers"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "quickbooks_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"transfer_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Source account id\",\n      \"name\": \"from_account_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Destination account id\",\n      \"name\": \"to_account_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Transaction date\",\n      \"name\": \"transaction_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Transfer amount\",\n      \"name\": \"amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Transfer observations for movement between bank or asset accounts.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"QuickBooks API transfers\",\n    \"spec_name\": \"quickbooks_api_transfers\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"quickbooks_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "quickbooks"
          ]
        },
        {
          "specName": "quickbooks_api_journal_entries",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "journal_entry_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Document number",
                "name": "doc_number",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Transaction date",
                "name": "transaction_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Total debit amount",
                "name": "total_debit",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Total credit amount",
                "name": "total_credit",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Journal entry observations for manual accounting adjustments and imports.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "QuickBooks API journal entries",
              "spec_name": "quickbooks_api_journal_entries"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "quickbooks_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"journal_entry_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Document number\",\n      \"name\": \"doc_number\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Transaction date\",\n      \"name\": \"transaction_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Total debit amount\",\n      \"name\": \"total_debit\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Total credit amount\",\n      \"name\": \"total_credit\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Journal entry observations for manual accounting adjustments and imports.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"QuickBooks API journal entries\",\n    \"spec_name\": \"quickbooks_api_journal_entries\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"quickbooks_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "quickbooks"
          ]
        },
        {
          "specName": "quickbooks_api_time_activities",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "time_activity_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Employee id",
                "name": "employee_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Customer id",
                "name": "customer_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Service item id",
                "name": "item_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Activity date",
                "name": "activity_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hours",
                "name": "hours",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Billable status",
                "name": "billable_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Time activity observations for billable time and service work.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "QuickBooks API time activities",
              "spec_name": "quickbooks_api_time_activities"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "quickbooks_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"time_activity_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Employee id\",\n      \"name\": \"employee_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Customer id\",\n      \"name\": \"customer_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Service item id\",\n      \"name\": \"item_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Activity date\",\n      \"name\": \"activity_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hours\",\n      \"name\": \"hours\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Billable status\",\n      \"name\": \"billable_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Time activity observations for billable time and service work.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"QuickBooks API time activities\",\n    \"spec_name\": \"quickbooks_api_time_activities\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"quickbooks_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "quickbooks"
          ]
        },
        {
          "specName": "quickbooks_api_attachments",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "attachment_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Linked entity type",
                "name": "linked_entity_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Linked entity id",
                "name": "linked_entity_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "File name",
                "name": "file_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Content type",
                "name": "content_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Attachable observations for source documents linked to transactions or list entities.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "QuickBooks API attachments",
              "spec_name": "quickbooks_api_attachments"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "quickbooks_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"attachment_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Linked entity type\",\n      \"name\": \"linked_entity_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Linked entity id\",\n      \"name\": \"linked_entity_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"File name\",\n      \"name\": \"file_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Content type\",\n      \"name\": \"content_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Attachable observations for source documents linked to transactions or list entities.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"QuickBooks API attachments\",\n    \"spec_name\": \"quickbooks_api_attachments\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"quickbooks_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "quickbooks"
          ]
        },
        {
          "specName": "quickbooks_api_change_events",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "change_event_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Entity name",
                "name": "entity_name",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Entity id",
                "name": "entity_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Create, update, or delete operation",
                "name": "operation",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Last updated timestamp",
                "name": "last_updated_time",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Change Data Capture observations for changed accounting entities and sync replay.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "QuickBooks API change events",
              "spec_name": "quickbooks_api_change_events"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "quickbooks_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"change_event_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Entity name\",\n      \"name\": \"entity_name\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Entity id\",\n      \"name\": \"entity_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Create, update, or delete operation\",\n      \"name\": \"operation\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Last updated timestamp\",\n      \"name\": \"last_updated_time\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Change Data Capture observations for changed accounting entities and sync replay.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"QuickBooks API change events\",\n    \"spec_name\": \"quickbooks_api_change_events\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"quickbooks_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "quickbooks"
          ]
        },
        {
          "specName": "quickbooks_agent_api_invoice_updates",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "invoice_update_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "invoice_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Customer id",
                "name": "customer_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Current balance",
                "name": "current_balance",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Proposed total amount",
                "name": "proposed_total_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed invoice creation/update proposals before outbound QuickBooks sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "QuickBooks agent API invoice updates",
              "spec_name": "quickbooks_agent_api_invoice_updates",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "quickbooks_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"invoice_update_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"invoice_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Customer id\",\n      \"name\": \"customer_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Current balance\",\n      \"name\": \"current_balance\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Proposed total amount\",\n      \"name\": \"proposed_total_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed invoice creation/update proposals before outbound QuickBooks sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"QuickBooks agent API invoice updates\",\n    \"spec_name\": \"quickbooks_agent_api_invoice_updates\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"quickbooks_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "quickbooks"
          ]
        },
        {
          "specName": "quickbooks_agent_api_bill_updates",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "bill_update_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "bill_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Vendor id",
                "name": "vendor_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Current balance",
                "name": "current_balance",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Proposed total amount",
                "name": "proposed_total_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed bill creation/update proposals before outbound QuickBooks sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "QuickBooks agent API bill updates",
              "spec_name": "quickbooks_agent_api_bill_updates",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "quickbooks_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"bill_update_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"bill_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Vendor id\",\n      \"name\": \"vendor_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Current balance\",\n      \"name\": \"current_balance\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Proposed total amount\",\n      \"name\": \"proposed_total_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed bill creation/update proposals before outbound QuickBooks sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"QuickBooks agent API bill updates\",\n    \"spec_name\": \"quickbooks_agent_api_bill_updates\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"quickbooks_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "quickbooks"
          ]
        },
        {
          "specName": "quickbooks_agent_api_journal_entry_proposals",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "journal_entry_proposal_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "journal_entry_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Transaction date",
                "name": "transaction_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Total debit amount",
                "name": "total_debit",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Total credit amount",
                "name": "total_credit",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed journal entry proposals before outbound QuickBooks sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "QuickBooks agent API journal entry proposals",
              "spec_name": "quickbooks_agent_api_journal_entry_proposals",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "quickbooks_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"journal_entry_proposal_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"journal_entry_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Transaction date\",\n      \"name\": \"transaction_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Total debit amount\",\n      \"name\": \"total_debit\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Total credit amount\",\n      \"name\": \"total_credit\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed journal entry proposals before outbound QuickBooks sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"QuickBooks agent API journal entry proposals\",\n    \"spec_name\": \"quickbooks_agent_api_journal_entry_proposals\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"quickbooks_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "quickbooks"
          ]
        },
        {
          "specName": "quickbooks_agent_api_customer_vendor_updates",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "counterparty_update_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "counterparty_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "customer or vendor",
                "name": "counterparty_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Field name",
                "name": "field_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Current value",
                "name": "current_value",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Proposed value",
                "name": "proposed_value",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed customer or vendor master-data update proposals before outbound QuickBooks sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "QuickBooks agent API customer/vendor updates",
              "spec_name": "quickbooks_agent_api_customer_vendor_updates",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "quickbooks_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"counterparty_update_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"counterparty_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"customer or vendor\",\n      \"name\": \"counterparty_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Field name\",\n      \"name\": \"field_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Current value\",\n      \"name\": \"current_value\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Proposed value\",\n      \"name\": \"proposed_value\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed customer or vendor master-data update proposals before outbound QuickBooks sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"QuickBooks agent API customer/vendor updates\",\n    \"spec_name\": \"quickbooks_agent_api_customer_vendor_updates\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"quickbooks_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "quickbooks"
          ]
        }
      ]
    },
    {
      "id": "netsuite_erp_library",
      "type": "collection",
      "domains": [
        "finance",
        "operations"
      ],
      "systems": [
        "netsuite"
      ],
      "version": "1.0.0",
      "summary": "NetSuite ERP specs for subsidiaries, accounting dimensions, customers, vendors, items, AR/AP transactions, inventory movement, journal entries, custom records, and governed ERP updates.",
      "coverageStatus": "Extended",
      "coverageNotes": "Covers the core ERP records agents usually need for accounting, procurement, inventory, order-to-cash, and master-data review. It does not mirror every NetSuite record type, sublist, or tenant custom field.",
      "sourceDocs": [
        {
          "label": "NetSuite REST Web Services",
          "url": "https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/chapter_1540391670.html"
        },
        {
          "label": "NetSuite REST API Browser",
          "url": "https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_157373386674.html"
        }
      ],
      "nextObjects": [
        "cash_sales",
        "customer_deposits",
        "work_orders",
        "assembly_builds",
        "opportunities",
        "estimates",
        "support_cases",
        "file_cabinet_documents"
      ],
      "omittedObjects": [
        "tenant-specific custom record schemas",
        "SuiteScript deployment metadata",
        "raw employee personal data",
        "OAuth/token management"
      ],
      "needs": [
        "A NetSuite agent/operator role. The generated calls use netsuite_agent."
      ],
      "usefulFor": [
        "ERP system memory",
        "Order-to-cash and procure-to-pay review",
        "Inventory movement review",
        "Close and journal-entry governance",
        "Customer/vendor/item master-data governance"
      ],
      "extendWith": [
        "Links from Shopify, Stripe, Square, or Toast observations into NetSuite transactions",
        "Three-way match reconciliation between purchase orders, item receipts, and vendor bills",
        "Tenant-specific custom-record variants after discovery"
      ],
      "searchTerms": [
        "netsuite",
        "oracle netsuite",
        "erp",
        "subsidiaries",
        "accounts",
        "customers",
        "vendors",
        "sales orders",
        "invoices",
        "vendor bills",
        "purchase orders",
        "journal entries",
        "inventory"
      ],
      "links": [
        {
          "from": "netsuite_agent_api_sales_order_updates",
          "to": "netsuite_api_sales_orders",
          "kind": "source_link",
          "description": "Sales-order update proposals cite the current NetSuite sales order observation."
        },
        {
          "from": "netsuite_agent_api_vendor_bill_updates",
          "to": "netsuite_api_vendor_bills",
          "kind": "source_link",
          "description": "Vendor-bill update proposals cite the current vendor bill observation."
        },
        {
          "from": "netsuite_agent_api_journal_entry_proposals",
          "to": "netsuite_api_journal_entries",
          "kind": "source_link",
          "description": "Journal-entry proposals cite existing journal entries or related accounting observations."
        },
        {
          "from": "netsuite_agent_api_item_updates",
          "to": "netsuite_api_items",
          "kind": "source_link",
          "description": "Item master-data updates cite current item observations."
        },
        {
          "from": "netsuite_agent_api_customer_vendor_updates",
          "to": "netsuite_api_customers",
          "kind": "source_link",
          "description": "Customer master-data updates cite current customer observations."
        },
        {
          "from": "netsuite_agent_api_customer_vendor_updates",
          "to": "netsuite_api_vendors",
          "kind": "source_link",
          "description": "Vendor master-data updates cite current vendor observations."
        },
        {
          "from": "netsuite_agent_api_inventory_adjustment_proposals",
          "to": "netsuite_api_inventory_items",
          "kind": "source_link",
          "description": "Inventory adjustment proposals cite current inventory-item observations."
        }
      ],
      "installedSpecs": [
        {
          "id": "netsuite_api_subsidiaries",
          "domain": "Observation",
          "purpose": "Subsidiary and entity-scope observations.",
          "systems": [
            "netsuite"
          ]
        },
        {
          "id": "netsuite_api_accounts",
          "domain": "Observation",
          "purpose": "Chart of accounts observations.",
          "systems": [
            "netsuite"
          ]
        },
        {
          "id": "netsuite_api_departments",
          "domain": "Observation",
          "purpose": "Department dimension observations.",
          "systems": [
            "netsuite"
          ]
        },
        {
          "id": "netsuite_api_classes",
          "domain": "Observation",
          "purpose": "Class dimension observations.",
          "systems": [
            "netsuite"
          ]
        },
        {
          "id": "netsuite_api_locations",
          "domain": "Observation",
          "purpose": "Location dimension observations.",
          "systems": [
            "netsuite"
          ]
        },
        {
          "id": "netsuite_api_customers",
          "domain": "Observation",
          "purpose": "Customer master-data observations.",
          "systems": [
            "netsuite"
          ]
        },
        {
          "id": "netsuite_api_vendors",
          "domain": "Observation",
          "purpose": "Vendor master-data observations.",
          "systems": [
            "netsuite"
          ]
        },
        {
          "id": "netsuite_api_employees",
          "domain": "Observation",
          "purpose": "Employee reference observations.",
          "systems": [
            "netsuite"
          ]
        },
        {
          "id": "netsuite_api_items",
          "domain": "Observation",
          "purpose": "Item master-data observations.",
          "systems": [
            "netsuite"
          ]
        },
        {
          "id": "netsuite_api_inventory_items",
          "domain": "Observation",
          "purpose": "Inventory quantity observations.",
          "systems": [
            "netsuite"
          ]
        },
        {
          "id": "netsuite_api_sales_orders",
          "domain": "Observation",
          "purpose": "Sales order observations.",
          "systems": [
            "netsuite"
          ]
        },
        {
          "id": "netsuite_api_invoices",
          "domain": "Observation",
          "purpose": "AR invoice observations.",
          "systems": [
            "netsuite"
          ]
        },
        {
          "id": "netsuite_api_customer_payments",
          "domain": "Observation",
          "purpose": "Customer payment observations.",
          "systems": [
            "netsuite"
          ]
        },
        {
          "id": "netsuite_api_credit_memos",
          "domain": "Observation",
          "purpose": "Customer credit memo observations.",
          "systems": [
            "netsuite"
          ]
        },
        {
          "id": "netsuite_api_return_authorizations",
          "domain": "Observation",
          "purpose": "Return authorization observations.",
          "systems": [
            "netsuite"
          ]
        },
        {
          "id": "netsuite_api_vendor_bills",
          "domain": "Observation",
          "purpose": "AP vendor bill observations.",
          "systems": [
            "netsuite"
          ]
        },
        {
          "id": "netsuite_api_vendor_payments",
          "domain": "Observation",
          "purpose": "Vendor payment observations.",
          "systems": [
            "netsuite"
          ]
        },
        {
          "id": "netsuite_api_vendor_credits",
          "domain": "Observation",
          "purpose": "Vendor credit observations.",
          "systems": [
            "netsuite"
          ]
        },
        {
          "id": "netsuite_api_purchase_orders",
          "domain": "Observation",
          "purpose": "Purchase order observations.",
          "systems": [
            "netsuite"
          ]
        },
        {
          "id": "netsuite_api_item_receipts",
          "domain": "Observation",
          "purpose": "Receiving observations.",
          "systems": [
            "netsuite"
          ]
        },
        {
          "id": "netsuite_api_item_fulfillments",
          "domain": "Observation",
          "purpose": "Fulfillment observations.",
          "systems": [
            "netsuite"
          ]
        },
        {
          "id": "netsuite_api_inventory_adjustments",
          "domain": "Observation",
          "purpose": "Inventory adjustment observations.",
          "systems": [
            "netsuite"
          ]
        },
        {
          "id": "netsuite_api_transfer_orders",
          "domain": "Observation",
          "purpose": "Transfer order observations.",
          "systems": [
            "netsuite"
          ]
        },
        {
          "id": "netsuite_api_deposits",
          "domain": "Observation",
          "purpose": "Deposit observations.",
          "systems": [
            "netsuite"
          ]
        },
        {
          "id": "netsuite_api_expense_reports",
          "domain": "Observation",
          "purpose": "Expense report observations.",
          "systems": [
            "netsuite"
          ]
        },
        {
          "id": "netsuite_api_journal_entries",
          "domain": "Observation",
          "purpose": "Journal entry observations.",
          "systems": [
            "netsuite"
          ]
        },
        {
          "id": "netsuite_api_custom_records",
          "domain": "Observation",
          "purpose": "Tenant custom-record observations.",
          "systems": [
            "netsuite"
          ]
        },
        {
          "id": "netsuite_agent_api_sales_order_updates",
          "domain": "Commitment workflow",
          "purpose": "Governed sales order updates.",
          "systems": [
            "netsuite"
          ]
        },
        {
          "id": "netsuite_agent_api_vendor_bill_updates",
          "domain": "Commitment workflow",
          "purpose": "Governed vendor bill updates.",
          "systems": [
            "netsuite"
          ]
        },
        {
          "id": "netsuite_agent_api_journal_entry_proposals",
          "domain": "Commitment workflow",
          "purpose": "Governed journal entry proposals.",
          "systems": [
            "netsuite"
          ]
        },
        {
          "id": "netsuite_agent_api_item_updates",
          "domain": "Commitment workflow",
          "purpose": "Governed item master-data updates.",
          "systems": [
            "netsuite"
          ]
        },
        {
          "id": "netsuite_agent_api_customer_vendor_updates",
          "domain": "Commitment workflow",
          "purpose": "Governed customer/vendor updates.",
          "systems": [
            "netsuite"
          ]
        },
        {
          "id": "netsuite_agent_api_inventory_adjustment_proposals",
          "domain": "Commitment workflow",
          "purpose": "Governed inventory adjustment proposals.",
          "systems": [
            "netsuite"
          ]
        }
      ],
      "createSpecPayloads": [
        {
          "specName": "netsuite_api_subsidiaries",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "subsidiary_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Subsidiary name",
                "name": "subsidiary_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Parent subsidiary id",
                "name": "parent_subsidiary_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Country",
                "name": "country",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Base currency",
                "name": "base_currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Inactive flag",
                "name": "is_inactive",
                "tests": [],
                "type": "boolean"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Subsidiary observations for OneWorld entity scoping, consolidation, and accounting ownership.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "NetSuite API subsidiaries",
              "spec_name": "netsuite_api_subsidiaries"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "netsuite_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"subsidiary_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Subsidiary name\",\n      \"name\": \"subsidiary_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Parent subsidiary id\",\n      \"name\": \"parent_subsidiary_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Country\",\n      \"name\": \"country\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Base currency\",\n      \"name\": \"base_currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Inactive flag\",\n      \"name\": \"is_inactive\",\n      \"tests\": [],\n      \"type\": \"boolean\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Subsidiary observations for OneWorld entity scoping, consolidation, and accounting ownership.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"NetSuite API subsidiaries\",\n    \"spec_name\": \"netsuite_api_subsidiaries\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"netsuite_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "netsuite"
          ]
        },
        {
          "specName": "netsuite_api_accounts",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "account_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Account number",
                "name": "account_number",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Account name",
                "name": "account_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Account type",
                "name": "account_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Parent account id",
                "name": "parent_account_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Inactive flag",
                "name": "is_inactive",
                "tests": [],
                "type": "boolean"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Chart of accounts observations for GL classification, posting, and reconciliation.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "NetSuite API accounts",
              "spec_name": "netsuite_api_accounts"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "netsuite_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"account_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Account number\",\n      \"name\": \"account_number\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Account name\",\n      \"name\": \"account_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Account type\",\n      \"name\": \"account_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Parent account id\",\n      \"name\": \"parent_account_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Inactive flag\",\n      \"name\": \"is_inactive\",\n      \"tests\": [],\n      \"type\": \"boolean\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Chart of accounts observations for GL classification, posting, and reconciliation.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"NetSuite API accounts\",\n    \"spec_name\": \"netsuite_api_accounts\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"netsuite_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "netsuite"
          ]
        },
        {
          "specName": "netsuite_api_departments",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "department_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Department name",
                "name": "department_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Parent department id",
                "name": "parent_department_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Subsidiary id",
                "name": "subsidiary_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Inactive flag",
                "name": "is_inactive",
                "tests": [],
                "type": "boolean"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Department dimension observations for management reporting and transaction coding.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "NetSuite API departments",
              "spec_name": "netsuite_api_departments"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "netsuite_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"department_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Department name\",\n      \"name\": \"department_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Parent department id\",\n      \"name\": \"parent_department_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Subsidiary id\",\n      \"name\": \"subsidiary_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Inactive flag\",\n      \"name\": \"is_inactive\",\n      \"tests\": [],\n      \"type\": \"boolean\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Department dimension observations for management reporting and transaction coding.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"NetSuite API departments\",\n    \"spec_name\": \"netsuite_api_departments\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"netsuite_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "netsuite"
          ]
        },
        {
          "specName": "netsuite_api_classes",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "class_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Class name",
                "name": "class_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Parent class id",
                "name": "parent_class_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Subsidiary id",
                "name": "subsidiary_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Inactive flag",
                "name": "is_inactive",
                "tests": [],
                "type": "boolean"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Class dimension observations for revenue, cost, and planning analysis.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "NetSuite API classes",
              "spec_name": "netsuite_api_classes"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "netsuite_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"class_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Class name\",\n      \"name\": \"class_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Parent class id\",\n      \"name\": \"parent_class_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Subsidiary id\",\n      \"name\": \"subsidiary_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Inactive flag\",\n      \"name\": \"is_inactive\",\n      \"tests\": [],\n      \"type\": \"boolean\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Class dimension observations for revenue, cost, and planning analysis.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"NetSuite API classes\",\n    \"spec_name\": \"netsuite_api_classes\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"netsuite_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "netsuite"
          ]
        },
        {
          "specName": "netsuite_api_locations",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "location_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Location name",
                "name": "location_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Subsidiary id",
                "name": "subsidiary_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Inactive flag",
                "name": "is_inactive",
                "tests": [],
                "type": "boolean"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Location dimension observations for inventory, fulfillment, and accounting transactions.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "NetSuite API locations",
              "spec_name": "netsuite_api_locations"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "netsuite_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"location_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Location name\",\n      \"name\": \"location_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Subsidiary id\",\n      \"name\": \"subsidiary_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Inactive flag\",\n      \"name\": \"is_inactive\",\n      \"tests\": [],\n      \"type\": \"boolean\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Location dimension observations for inventory, fulfillment, and accounting transactions.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"NetSuite API locations\",\n    \"spec_name\": \"netsuite_api_locations\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"netsuite_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "netsuite"
          ]
        },
        {
          "specName": "netsuite_api_customers",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "customer_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Customer entity id",
                "name": "entity_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Company name",
                "name": "company_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed or tokenized email reference",
                "name": "email_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Subsidiary id",
                "name": "subsidiary_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Customer status",
                "name": "status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Customer observations for order-to-cash, billing, credit, and collections workflows.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "NetSuite API customers",
              "spec_name": "netsuite_api_customers"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "netsuite_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"customer_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Customer entity id\",\n      \"name\": \"entity_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Company name\",\n      \"name\": \"company_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed or tokenized email reference\",\n      \"name\": \"email_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Subsidiary id\",\n      \"name\": \"subsidiary_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Customer status\",\n      \"name\": \"status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Customer observations for order-to-cash, billing, credit, and collections workflows.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"NetSuite API customers\",\n    \"spec_name\": \"netsuite_api_customers\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"netsuite_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "netsuite"
          ]
        },
        {
          "specName": "netsuite_api_vendors",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "vendor_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Vendor entity id",
                "name": "entity_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Company name",
                "name": "company_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed or tokenized email reference",
                "name": "email_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Subsidiary id",
                "name": "subsidiary_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Vendor status",
                "name": "status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Vendor observations for procure-to-pay, approvals, and payment workflows.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "NetSuite API vendors",
              "spec_name": "netsuite_api_vendors"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "netsuite_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"vendor_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Vendor entity id\",\n      \"name\": \"entity_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Company name\",\n      \"name\": \"company_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed or tokenized email reference\",\n      \"name\": \"email_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Subsidiary id\",\n      \"name\": \"subsidiary_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Vendor status\",\n      \"name\": \"status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Vendor observations for procure-to-pay, approvals, and payment workflows.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"NetSuite API vendors\",\n    \"spec_name\": \"netsuite_api_vendors\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"netsuite_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "netsuite"
          ]
        },
        {
          "specName": "netsuite_api_employees",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "employee_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Employee entity id",
                "name": "entity_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed or tokenized email reference",
                "name": "email_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Department id",
                "name": "department_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Subsidiary id",
                "name": "subsidiary_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Inactive flag",
                "name": "is_inactive",
                "tests": [],
                "type": "boolean"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Employee observations for approvals, expense reports, and operational ownership.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "NetSuite API employees",
              "spec_name": "netsuite_api_employees"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "netsuite_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"employee_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Employee entity id\",\n      \"name\": \"entity_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed or tokenized email reference\",\n      \"name\": \"email_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Department id\",\n      \"name\": \"department_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Subsidiary id\",\n      \"name\": \"subsidiary_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Inactive flag\",\n      \"name\": \"is_inactive\",\n      \"tests\": [],\n      \"type\": \"boolean\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Employee observations for approvals, expense reports, and operational ownership.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"NetSuite API employees\",\n    \"spec_name\": \"netsuite_api_employees\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"netsuite_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "netsuite"
          ]
        },
        {
          "specName": "netsuite_api_items",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "item_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Item external id",
                "name": "item_id_external",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Item name",
                "name": "item_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Item type",
                "name": "item_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "SKU",
                "name": "sku",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Income account id",
                "name": "income_account_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Expense account id",
                "name": "expense_account_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Item master observations for sales, purchasing, inventory, and revenue/cost mapping.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "NetSuite API items",
              "spec_name": "netsuite_api_items"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "netsuite_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"item_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Item external id\",\n      \"name\": \"item_id_external\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Item name\",\n      \"name\": \"item_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Item type\",\n      \"name\": \"item_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"SKU\",\n      \"name\": \"sku\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Income account id\",\n      \"name\": \"income_account_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Expense account id\",\n      \"name\": \"expense_account_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Item master observations for sales, purchasing, inventory, and revenue/cost mapping.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"NetSuite API items\",\n    \"spec_name\": \"netsuite_api_items\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"netsuite_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "netsuite"
          ]
        },
        {
          "specName": "netsuite_api_inventory_items",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "inventory_item_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Item id",
                "name": "item_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "SKU",
                "name": "sku",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Location id",
                "name": "location_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Quantity on hand",
                "name": "quantity_on_hand",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Quantity available",
                "name": "quantity_available",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Inventory item observations for stocking, costing, fulfillment, and purchasing workflows.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "NetSuite API inventory items",
              "spec_name": "netsuite_api_inventory_items"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "netsuite_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"inventory_item_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Item id\",\n      \"name\": \"item_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"SKU\",\n      \"name\": \"sku\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Location id\",\n      \"name\": \"location_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Quantity on hand\",\n      \"name\": \"quantity_on_hand\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Quantity available\",\n      \"name\": \"quantity_available\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Inventory item observations for stocking, costing, fulfillment, and purchasing workflows.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"NetSuite API inventory items\",\n    \"spec_name\": \"netsuite_api_inventory_items\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"netsuite_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "netsuite"
          ]
        },
        {
          "specName": "netsuite_api_sales_orders",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "sales_order_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Customer id",
                "name": "customer_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Transaction id",
                "name": "tran_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Transaction date",
                "name": "transaction_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Sales order status",
                "name": "status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Total amount",
                "name": "total_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Sales order observations for order-to-cash, fulfillment, and revenue operations.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "NetSuite API sales orders",
              "spec_name": "netsuite_api_sales_orders"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "netsuite_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"sales_order_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Customer id\",\n      \"name\": \"customer_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Transaction id\",\n      \"name\": \"tran_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Transaction date\",\n      \"name\": \"transaction_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Sales order status\",\n      \"name\": \"status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Total amount\",\n      \"name\": \"total_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Sales order observations for order-to-cash, fulfillment, and revenue operations.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"NetSuite API sales orders\",\n    \"spec_name\": \"netsuite_api_sales_orders\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"netsuite_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "netsuite"
          ]
        },
        {
          "specName": "netsuite_api_invoices",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "invoice_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Customer id",
                "name": "customer_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Transaction id",
                "name": "tran_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Transaction date",
                "name": "transaction_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Due date",
                "name": "due_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Invoice status",
                "name": "status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Amount remaining",
                "name": "amount_remaining",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Invoice observations for AR, revenue, and collections workflows.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "NetSuite API invoices",
              "spec_name": "netsuite_api_invoices"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "netsuite_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"invoice_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Customer id\",\n      \"name\": \"customer_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Transaction id\",\n      \"name\": \"tran_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Transaction date\",\n      \"name\": \"transaction_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Due date\",\n      \"name\": \"due_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Invoice status\",\n      \"name\": \"status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Amount remaining\",\n      \"name\": \"amount_remaining\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Invoice observations for AR, revenue, and collections workflows.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"NetSuite API invoices\",\n    \"spec_name\": \"netsuite_api_invoices\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"netsuite_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "netsuite"
          ]
        },
        {
          "specName": "netsuite_api_customer_payments",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "customer_payment_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Customer id",
                "name": "customer_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Transaction id",
                "name": "tran_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Transaction date",
                "name": "transaction_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Payment amount",
                "name": "payment_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Customer payment observations for AR application and cash reconciliation.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "NetSuite API customer payments",
              "spec_name": "netsuite_api_customer_payments"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "netsuite_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"customer_payment_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Customer id\",\n      \"name\": \"customer_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Transaction id\",\n      \"name\": \"tran_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Transaction date\",\n      \"name\": \"transaction_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Payment amount\",\n      \"name\": \"payment_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Customer payment observations for AR application and cash reconciliation.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"NetSuite API customer payments\",\n    \"spec_name\": \"netsuite_api_customer_payments\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"netsuite_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "netsuite"
          ]
        },
        {
          "specName": "netsuite_api_credit_memos",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "credit_memo_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Customer id",
                "name": "customer_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Transaction id",
                "name": "tran_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Transaction date",
                "name": "transaction_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Remaining credit amount",
                "name": "amount_remaining",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Credit memo observations for AR credits and customer balance adjustments.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "NetSuite API credit memos",
              "spec_name": "netsuite_api_credit_memos"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "netsuite_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"credit_memo_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Customer id\",\n      \"name\": \"customer_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Transaction id\",\n      \"name\": \"tran_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Transaction date\",\n      \"name\": \"transaction_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Remaining credit amount\",\n      \"name\": \"amount_remaining\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Credit memo observations for AR credits and customer balance adjustments.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"NetSuite API credit memos\",\n    \"spec_name\": \"netsuite_api_credit_memos\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"netsuite_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "netsuite"
          ]
        },
        {
          "specName": "netsuite_api_return_authorizations",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "return_authorization_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Customer id",
                "name": "customer_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Sales order id",
                "name": "sales_order_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Transaction id",
                "name": "tran_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Return status",
                "name": "status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Total amount",
                "name": "total_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Return authorization observations for reverse logistics and customer credits.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "NetSuite API return authorizations",
              "spec_name": "netsuite_api_return_authorizations"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "netsuite_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"return_authorization_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Customer id\",\n      \"name\": \"customer_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Sales order id\",\n      \"name\": \"sales_order_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Transaction id\",\n      \"name\": \"tran_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Return status\",\n      \"name\": \"status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Total amount\",\n      \"name\": \"total_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Return authorization observations for reverse logistics and customer credits.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"NetSuite API return authorizations\",\n    \"spec_name\": \"netsuite_api_return_authorizations\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"netsuite_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "netsuite"
          ]
        },
        {
          "specName": "netsuite_api_vendor_bills",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "vendor_bill_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Vendor id",
                "name": "vendor_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Transaction id",
                "name": "tran_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Transaction date",
                "name": "transaction_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Due date",
                "name": "due_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Vendor bill status",
                "name": "status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Amount remaining",
                "name": "amount_remaining",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Vendor bill observations for AP, approvals, due dates, and payment planning.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "NetSuite API vendor bills",
              "spec_name": "netsuite_api_vendor_bills"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "netsuite_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"vendor_bill_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Vendor id\",\n      \"name\": \"vendor_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Transaction id\",\n      \"name\": \"tran_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Transaction date\",\n      \"name\": \"transaction_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Due date\",\n      \"name\": \"due_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Vendor bill status\",\n      \"name\": \"status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Amount remaining\",\n      \"name\": \"amount_remaining\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Vendor bill observations for AP, approvals, due dates, and payment planning.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"NetSuite API vendor bills\",\n    \"spec_name\": \"netsuite_api_vendor_bills\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"netsuite_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "netsuite"
          ]
        },
        {
          "specName": "netsuite_api_vendor_payments",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "vendor_payment_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Vendor id",
                "name": "vendor_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Transaction id",
                "name": "tran_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Transaction date",
                "name": "transaction_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Payment amount",
                "name": "payment_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Vendor payment observations for AP settlement and cash reconciliation.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "NetSuite API vendor payments",
              "spec_name": "netsuite_api_vendor_payments"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "netsuite_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"vendor_payment_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Vendor id\",\n      \"name\": \"vendor_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Transaction id\",\n      \"name\": \"tran_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Transaction date\",\n      \"name\": \"transaction_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Payment amount\",\n      \"name\": \"payment_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Vendor payment observations for AP settlement and cash reconciliation.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"NetSuite API vendor payments\",\n    \"spec_name\": \"netsuite_api_vendor_payments\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"netsuite_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "netsuite"
          ]
        },
        {
          "specName": "netsuite_api_vendor_credits",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "vendor_credit_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Vendor id",
                "name": "vendor_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Transaction id",
                "name": "tran_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Transaction date",
                "name": "transaction_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Remaining credit amount",
                "name": "amount_remaining",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Vendor credit observations for AP netting and open-credit review.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "NetSuite API vendor credits",
              "spec_name": "netsuite_api_vendor_credits"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "netsuite_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"vendor_credit_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Vendor id\",\n      \"name\": \"vendor_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Transaction id\",\n      \"name\": \"tran_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Transaction date\",\n      \"name\": \"transaction_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Remaining credit amount\",\n      \"name\": \"amount_remaining\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Vendor credit observations for AP netting and open-credit review.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"NetSuite API vendor credits\",\n    \"spec_name\": \"netsuite_api_vendor_credits\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"netsuite_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "netsuite"
          ]
        },
        {
          "specName": "netsuite_api_purchase_orders",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "purchase_order_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Vendor id",
                "name": "vendor_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Transaction id",
                "name": "tran_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Transaction date",
                "name": "transaction_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Purchase order status",
                "name": "status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Total amount",
                "name": "total_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Purchase order observations for procurement, receiving, and AP intake.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "NetSuite API purchase orders",
              "spec_name": "netsuite_api_purchase_orders"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "netsuite_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"purchase_order_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Vendor id\",\n      \"name\": \"vendor_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Transaction id\",\n      \"name\": \"tran_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Transaction date\",\n      \"name\": \"transaction_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Purchase order status\",\n      \"name\": \"status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Total amount\",\n      \"name\": \"total_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Purchase order observations for procurement, receiving, and AP intake.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"NetSuite API purchase orders\",\n    \"spec_name\": \"netsuite_api_purchase_orders\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"netsuite_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "netsuite"
          ]
        },
        {
          "specName": "netsuite_api_item_receipts",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "item_receipt_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Purchase order id",
                "name": "purchase_order_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Vendor id",
                "name": "vendor_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Transaction id",
                "name": "tran_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Transaction date",
                "name": "transaction_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Item receipt status",
                "name": "status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Item receipt observations for receiving, inventory, and three-way match workflows.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "NetSuite API item receipts",
              "spec_name": "netsuite_api_item_receipts"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "netsuite_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"item_receipt_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Purchase order id\",\n      \"name\": \"purchase_order_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Vendor id\",\n      \"name\": \"vendor_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Transaction id\",\n      \"name\": \"tran_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Transaction date\",\n      \"name\": \"transaction_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Item receipt status\",\n      \"name\": \"status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Item receipt observations for receiving, inventory, and three-way match workflows.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"NetSuite API item receipts\",\n    \"spec_name\": \"netsuite_api_item_receipts\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"netsuite_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "netsuite"
          ]
        },
        {
          "specName": "netsuite_api_item_fulfillments",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "item_fulfillment_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Sales order id",
                "name": "sales_order_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Customer id",
                "name": "customer_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Transaction id",
                "name": "tran_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Transaction date",
                "name": "transaction_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Fulfillment status",
                "name": "status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Item fulfillment observations for outbound logistics and sales order fulfillment.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "NetSuite API item fulfillments",
              "spec_name": "netsuite_api_item_fulfillments"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "netsuite_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"item_fulfillment_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Sales order id\",\n      \"name\": \"sales_order_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Customer id\",\n      \"name\": \"customer_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Transaction id\",\n      \"name\": \"tran_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Transaction date\",\n      \"name\": \"transaction_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Fulfillment status\",\n      \"name\": \"status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Item fulfillment observations for outbound logistics and sales order fulfillment.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"NetSuite API item fulfillments\",\n    \"spec_name\": \"netsuite_api_item_fulfillments\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"netsuite_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "netsuite"
          ]
        },
        {
          "specName": "netsuite_api_inventory_adjustments",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "inventory_adjustment_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Adjustment account id",
                "name": "account_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Location id",
                "name": "location_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Transaction date",
                "name": "transaction_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Estimated total value",
                "name": "estimated_total_value",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Inventory adjustment observations for quantity, costing, shrinkage, and audit review.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "NetSuite API inventory adjustments",
              "spec_name": "netsuite_api_inventory_adjustments"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "netsuite_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"inventory_adjustment_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Adjustment account id\",\n      \"name\": \"account_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Location id\",\n      \"name\": \"location_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Transaction date\",\n      \"name\": \"transaction_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Estimated total value\",\n      \"name\": \"estimated_total_value\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Inventory adjustment observations for quantity, costing, shrinkage, and audit review.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"NetSuite API inventory adjustments\",\n    \"spec_name\": \"netsuite_api_inventory_adjustments\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"netsuite_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "netsuite"
          ]
        },
        {
          "specName": "netsuite_api_transfer_orders",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "transfer_order_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Source location id",
                "name": "source_location_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Destination location id",
                "name": "destination_location_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Transaction id",
                "name": "tran_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Transaction date",
                "name": "transaction_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Transfer order status",
                "name": "status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Transfer order observations for movement between locations or subsidiaries.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "NetSuite API transfer orders",
              "spec_name": "netsuite_api_transfer_orders"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "netsuite_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"transfer_order_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Source location id\",\n      \"name\": \"source_location_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Destination location id\",\n      \"name\": \"destination_location_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Transaction id\",\n      \"name\": \"tran_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Transaction date\",\n      \"name\": \"transaction_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Transfer order status\",\n      \"name\": \"status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Transfer order observations for movement between locations or subsidiaries.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"NetSuite API transfer orders\",\n    \"spec_name\": \"netsuite_api_transfer_orders\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"netsuite_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "netsuite"
          ]
        },
        {
          "specName": "netsuite_api_deposits",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "deposit_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Deposit account id",
                "name": "account_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Transaction id",
                "name": "tran_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Transaction date",
                "name": "transaction_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Deposit amount",
                "name": "total_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Deposit observations for bank deposits, cash application, and reconciliation.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "NetSuite API deposits",
              "spec_name": "netsuite_api_deposits"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "netsuite_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"deposit_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Deposit account id\",\n      \"name\": \"account_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Transaction id\",\n      \"name\": \"tran_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Transaction date\",\n      \"name\": \"transaction_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Deposit amount\",\n      \"name\": \"total_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Deposit observations for bank deposits, cash application, and reconciliation.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"NetSuite API deposits\",\n    \"spec_name\": \"netsuite_api_deposits\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"netsuite_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "netsuite"
          ]
        },
        {
          "specName": "netsuite_api_expense_reports",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "expense_report_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Employee id",
                "name": "employee_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Transaction id",
                "name": "tran_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Transaction date",
                "name": "transaction_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Expense report status",
                "name": "status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Total amount",
                "name": "total_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Expense report observations for employee spend and approval workflows.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "NetSuite API expense reports",
              "spec_name": "netsuite_api_expense_reports"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "netsuite_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"expense_report_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Employee id\",\n      \"name\": \"employee_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Transaction id\",\n      \"name\": \"tran_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Transaction date\",\n      \"name\": \"transaction_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Expense report status\",\n      \"name\": \"status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Total amount\",\n      \"name\": \"total_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Expense report observations for employee spend and approval workflows.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"NetSuite API expense reports\",\n    \"spec_name\": \"netsuite_api_expense_reports\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"netsuite_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "netsuite"
          ]
        },
        {
          "specName": "netsuite_api_journal_entries",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "journal_entry_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Transaction id",
                "name": "tran_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Transaction date",
                "name": "transaction_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Subsidiary id",
                "name": "subsidiary_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Total debit",
                "name": "total_debit",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Total credit",
                "name": "total_credit",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Journal entry observations for GL adjustments, integrations, and close workflows.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "NetSuite API journal entries",
              "spec_name": "netsuite_api_journal_entries"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "netsuite_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"journal_entry_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Transaction id\",\n      \"name\": \"tran_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Transaction date\",\n      \"name\": \"transaction_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Subsidiary id\",\n      \"name\": \"subsidiary_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Total debit\",\n      \"name\": \"total_debit\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Total credit\",\n      \"name\": \"total_credit\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Journal entry observations for GL adjustments, integrations, and close workflows.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"NetSuite API journal entries\",\n    \"spec_name\": \"netsuite_api_journal_entries\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"netsuite_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "netsuite"
          ]
        },
        {
          "specName": "netsuite_api_custom_records",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "custom_record_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Custom record type id",
                "name": "record_type_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Record name",
                "name": "record_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Owner id",
                "name": "owner_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Subsidiary id",
                "name": "subsidiary_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Custom record observations for tenant-specific operational records exposed through NetSuite.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "NetSuite API custom records",
              "spec_name": "netsuite_api_custom_records"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "netsuite_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"custom_record_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Custom record type id\",\n      \"name\": \"record_type_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Record name\",\n      \"name\": \"record_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Owner id\",\n      \"name\": \"owner_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Subsidiary id\",\n      \"name\": \"subsidiary_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Custom record observations for tenant-specific operational records exposed through NetSuite.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"NetSuite API custom records\",\n    \"spec_name\": \"netsuite_api_custom_records\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"netsuite_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "netsuite"
          ]
        },
        {
          "specName": "netsuite_agent_api_sales_order_updates",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "sales_order_update_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "sales_order_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Current status",
                "name": "current_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Proposed status",
                "name": "proposed_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Proposed total amount",
                "name": "proposed_total_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed sales order update proposals before outbound NetSuite sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "NetSuite agent API sales order updates",
              "spec_name": "netsuite_agent_api_sales_order_updates",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "netsuite_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"sales_order_update_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"sales_order_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Current status\",\n      \"name\": \"current_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Proposed status\",\n      \"name\": \"proposed_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Proposed total amount\",\n      \"name\": \"proposed_total_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed sales order update proposals before outbound NetSuite sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"NetSuite agent API sales order updates\",\n    \"spec_name\": \"netsuite_agent_api_sales_order_updates\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"netsuite_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "netsuite"
          ]
        },
        {
          "specName": "netsuite_agent_api_vendor_bill_updates",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "vendor_bill_update_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "vendor_bill_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Vendor id",
                "name": "vendor_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Current amount remaining",
                "name": "current_amount_remaining",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Proposed total amount",
                "name": "proposed_total_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed vendor bill update proposals before outbound NetSuite sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "NetSuite agent API vendor bill updates",
              "spec_name": "netsuite_agent_api_vendor_bill_updates",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "netsuite_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"vendor_bill_update_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"vendor_bill_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Vendor id\",\n      \"name\": \"vendor_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Current amount remaining\",\n      \"name\": \"current_amount_remaining\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Proposed total amount\",\n      \"name\": \"proposed_total_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed vendor bill update proposals before outbound NetSuite sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"NetSuite agent API vendor bill updates\",\n    \"spec_name\": \"netsuite_agent_api_vendor_bill_updates\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"netsuite_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "netsuite"
          ]
        },
        {
          "specName": "netsuite_agent_api_journal_entry_proposals",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "journal_entry_proposal_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "journal_entry_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Subsidiary id",
                "name": "subsidiary_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Transaction date",
                "name": "transaction_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Total debit",
                "name": "total_debit",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Total credit",
                "name": "total_credit",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed journal entry proposals before outbound NetSuite sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "NetSuite agent API journal entry proposals",
              "spec_name": "netsuite_agent_api_journal_entry_proposals",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "netsuite_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"journal_entry_proposal_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"journal_entry_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Subsidiary id\",\n      \"name\": \"subsidiary_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Transaction date\",\n      \"name\": \"transaction_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Total debit\",\n      \"name\": \"total_debit\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Total credit\",\n      \"name\": \"total_credit\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed journal entry proposals before outbound NetSuite sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"NetSuite agent API journal entry proposals\",\n    \"spec_name\": \"netsuite_agent_api_journal_entry_proposals\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"netsuite_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "netsuite"
          ]
        },
        {
          "specName": "netsuite_agent_api_item_updates",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "item_update_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "item_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Field name",
                "name": "field_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Current value",
                "name": "current_value",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Proposed value",
                "name": "proposed_value",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed item master-data update proposals before outbound NetSuite sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "NetSuite agent API item updates",
              "spec_name": "netsuite_agent_api_item_updates",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "netsuite_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"item_update_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"item_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Field name\",\n      \"name\": \"field_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Current value\",\n      \"name\": \"current_value\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Proposed value\",\n      \"name\": \"proposed_value\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed item master-data update proposals before outbound NetSuite sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"NetSuite agent API item updates\",\n    \"spec_name\": \"netsuite_agent_api_item_updates\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"netsuite_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "netsuite"
          ]
        },
        {
          "specName": "netsuite_agent_api_customer_vendor_updates",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "counterparty_update_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "counterparty_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "customer or vendor",
                "name": "counterparty_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Field name",
                "name": "field_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Current value",
                "name": "current_value",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Proposed value",
                "name": "proposed_value",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed customer or vendor master-data update proposals before outbound NetSuite sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "NetSuite agent API customer/vendor updates",
              "spec_name": "netsuite_agent_api_customer_vendor_updates",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "netsuite_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"counterparty_update_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"counterparty_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"customer or vendor\",\n      \"name\": \"counterparty_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Field name\",\n      \"name\": \"field_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Current value\",\n      \"name\": \"current_value\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Proposed value\",\n      \"name\": \"proposed_value\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed customer or vendor master-data update proposals before outbound NetSuite sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"NetSuite agent API customer/vendor updates\",\n    \"spec_name\": \"netsuite_agent_api_customer_vendor_updates\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"netsuite_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "netsuite"
          ]
        },
        {
          "specName": "netsuite_agent_api_inventory_adjustment_proposals",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "inventory_adjustment_proposal_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "inventory_adjustment_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Item id",
                "name": "item_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Location id",
                "name": "location_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Current quantity",
                "name": "current_quantity",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Proposed quantity",
                "name": "proposed_quantity",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed inventory adjustment proposals before outbound NetSuite sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "NetSuite agent API inventory adjustment proposals",
              "spec_name": "netsuite_agent_api_inventory_adjustment_proposals",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "netsuite_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"inventory_adjustment_proposal_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"inventory_adjustment_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Item id\",\n      \"name\": \"item_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Location id\",\n      \"name\": \"location_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Current quantity\",\n      \"name\": \"current_quantity\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Proposed quantity\",\n      \"name\": \"proposed_quantity\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed inventory adjustment proposals before outbound NetSuite sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"NetSuite agent API inventory adjustment proposals\",\n    \"spec_name\": \"netsuite_agent_api_inventory_adjustment_proposals\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"netsuite_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "netsuite"
          ]
        }
      ]
    },
    {
      "id": "salesforce_crm_library",
      "type": "collection",
      "domains": [
        "crm",
        "operations"
      ],
      "systems": [
        "salesforce"
      ],
      "version": "1.0.0",
      "summary": "Salesforce CRM specs for accounts, contacts, leads, opportunities, cases, campaigns, activities, products, quotes, orders, contracts, assets, custom objects, change events, and governed CRM updates.",
      "coverageStatus": "Extended",
      "coverageNotes": "Covers the core Sales Cloud and Service Cloud objects agents usually need for CRM memory and governed record changes. It does not mirror every Salesforce sObject, field-level customization, or managed-package object.",
      "sourceDocs": [
        {
          "label": "Salesforce REST API Developer Guide",
          "url": "https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/intro_rest.htm"
        },
        {
          "label": "Salesforce Object Reference",
          "url": "https://developer.salesforce.com/docs/atlas.en-us.object_reference.meta/object_reference/"
        },
        {
          "label": "Accessing Object Data with Salesforce Platform APIs",
          "url": "https://developer.salesforce.com/blogs/2024/04/accessing-object-data-with-salesforce-platform-apis"
        }
      ],
      "nextObjects": [
        "files_content_documents",
        "knowledge_articles",
        "queues_groups",
        "territories",
        "forecasts",
        "opportunity_splits",
        "custom_metadata",
        "managed_package_objects"
      ],
      "omittedObjects": [
        "full field-level security metadata",
        "setup/audit metadata",
        "raw personal contact details",
        "OAuth/token management",
        "complete managed-package schemas"
      ],
      "needs": [
        "A Salesforce agent/operator role. The generated calls use salesforce_agent."
      ],
      "usefulFor": [
        "CRM account memory",
        "Pipeline and forecast review",
        "Support case follow-up",
        "Marketing campaign response review",
        "Governed account/contact/opportunity/case changes"
      ],
      "extendWith": [
        "Links from Shopify/Stripe/NetSuite/QuickBooks customer records into Salesforce accounts",
        "Case-to-issue relationships with ops_issues or project management specs",
        "Tenant-specific custom-object specs after discovery"
      ],
      "searchTerms": [
        "salesforce",
        "crm",
        "accounts",
        "contacts",
        "leads",
        "opportunities",
        "cases",
        "campaigns",
        "tasks",
        "events",
        "quotes",
        "orders",
        "contracts",
        "sales cloud",
        "service cloud"
      ],
      "links": [
        {
          "from": "salesforce_agent_api_account_updates",
          "to": "salesforce_api_accounts",
          "kind": "source_link",
          "description": "Account update proposals cite the current account observation."
        },
        {
          "from": "salesforce_agent_api_contact_lead_updates",
          "to": "salesforce_api_contacts",
          "kind": "source_link",
          "description": "Contact update proposals cite the current contact observation."
        },
        {
          "from": "salesforce_agent_api_contact_lead_updates",
          "to": "salesforce_api_leads",
          "kind": "source_link",
          "description": "Lead update proposals cite the current lead observation."
        },
        {
          "from": "salesforce_agent_api_opportunity_updates",
          "to": "salesforce_api_opportunities",
          "kind": "source_link",
          "description": "Opportunity update proposals cite the current opportunity observation."
        },
        {
          "from": "salesforce_agent_api_case_updates",
          "to": "salesforce_api_cases",
          "kind": "source_link",
          "description": "Case update proposals cite the current case observation."
        },
        {
          "from": "salesforce_agent_api_campaign_member_updates",
          "to": "salesforce_api_campaign_members",
          "kind": "source_link",
          "description": "Campaign member update proposals cite the current campaign member observation."
        }
      ],
      "installedSpecs": [
        {
          "id": "salesforce_api_accounts",
          "domain": "Observation",
          "purpose": "Account and company observations.",
          "systems": [
            "salesforce"
          ]
        },
        {
          "id": "salesforce_api_contacts",
          "domain": "Observation",
          "purpose": "Contact observations.",
          "systems": [
            "salesforce"
          ]
        },
        {
          "id": "salesforce_api_leads",
          "domain": "Observation",
          "purpose": "Lead qualification observations.",
          "systems": [
            "salesforce"
          ]
        },
        {
          "id": "salesforce_api_opportunities",
          "domain": "Observation",
          "purpose": "Pipeline opportunity observations.",
          "systems": [
            "salesforce"
          ]
        },
        {
          "id": "salesforce_api_opportunity_contact_roles",
          "domain": "Observation",
          "purpose": "Buying committee role observations.",
          "systems": [
            "salesforce"
          ]
        },
        {
          "id": "salesforce_api_cases",
          "domain": "Observation",
          "purpose": "Support case observations.",
          "systems": [
            "salesforce"
          ]
        },
        {
          "id": "salesforce_api_campaigns",
          "domain": "Observation",
          "purpose": "Marketing campaign observations.",
          "systems": [
            "salesforce"
          ]
        },
        {
          "id": "salesforce_api_campaign_members",
          "domain": "Observation",
          "purpose": "Campaign response observations.",
          "systems": [
            "salesforce"
          ]
        },
        {
          "id": "salesforce_api_tasks",
          "domain": "Observation",
          "purpose": "Sales and service task observations.",
          "systems": [
            "salesforce"
          ]
        },
        {
          "id": "salesforce_api_events",
          "domain": "Observation",
          "purpose": "Meeting and calendar activity observations.",
          "systems": [
            "salesforce"
          ]
        },
        {
          "id": "salesforce_api_products",
          "domain": "Observation",
          "purpose": "Product catalog observations.",
          "systems": [
            "salesforce"
          ]
        },
        {
          "id": "salesforce_api_pricebook_entries",
          "domain": "Observation",
          "purpose": "Pricebook pricing observations.",
          "systems": [
            "salesforce"
          ]
        },
        {
          "id": "salesforce_api_quotes",
          "domain": "Observation",
          "purpose": "Quote observations.",
          "systems": [
            "salesforce"
          ]
        },
        {
          "id": "salesforce_api_quote_line_items",
          "domain": "Observation",
          "purpose": "Quote line item observations.",
          "systems": [
            "salesforce"
          ]
        },
        {
          "id": "salesforce_api_orders",
          "domain": "Observation",
          "purpose": "Sales order observations.",
          "systems": [
            "salesforce"
          ]
        },
        {
          "id": "salesforce_api_order_items",
          "domain": "Observation",
          "purpose": "Order item observations.",
          "systems": [
            "salesforce"
          ]
        },
        {
          "id": "salesforce_api_contracts",
          "domain": "Observation",
          "purpose": "Contract observations.",
          "systems": [
            "salesforce"
          ]
        },
        {
          "id": "salesforce_api_assets",
          "domain": "Observation",
          "purpose": "Installed asset observations.",
          "systems": [
            "salesforce"
          ]
        },
        {
          "id": "salesforce_api_entitlements",
          "domain": "Observation",
          "purpose": "Support entitlement observations.",
          "systems": [
            "salesforce"
          ]
        },
        {
          "id": "salesforce_api_users",
          "domain": "Observation",
          "purpose": "User and owner-routing observations.",
          "systems": [
            "salesforce"
          ]
        },
        {
          "id": "salesforce_api_custom_objects",
          "domain": "Observation",
          "purpose": "Tenant custom-object observations.",
          "systems": [
            "salesforce"
          ]
        },
        {
          "id": "salesforce_api_change_events",
          "domain": "Observation",
          "purpose": "CRM change event observations.",
          "systems": [
            "salesforce"
          ]
        },
        {
          "id": "salesforce_agent_api_account_updates",
          "domain": "Commitment workflow",
          "purpose": "Governed account updates.",
          "systems": [
            "salesforce"
          ]
        },
        {
          "id": "salesforce_agent_api_contact_lead_updates",
          "domain": "Commitment workflow",
          "purpose": "Governed contact/lead updates.",
          "systems": [
            "salesforce"
          ]
        },
        {
          "id": "salesforce_agent_api_opportunity_updates",
          "domain": "Commitment workflow",
          "purpose": "Governed opportunity updates.",
          "systems": [
            "salesforce"
          ]
        },
        {
          "id": "salesforce_agent_api_case_updates",
          "domain": "Commitment workflow",
          "purpose": "Governed case updates.",
          "systems": [
            "salesforce"
          ]
        },
        {
          "id": "salesforce_agent_api_campaign_member_updates",
          "domain": "Commitment workflow",
          "purpose": "Governed campaign member updates.",
          "systems": [
            "salesforce"
          ]
        }
      ],
      "createSpecPayloads": [
        {
          "specName": "salesforce_api_accounts",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "account_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Account name",
                "name": "account_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Account type",
                "name": "account_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Industry",
                "name": "industry",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Owner user id",
                "name": "owner_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Parent account id",
                "name": "parent_account_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Annual revenue",
                "name": "annual_revenue",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Account observations for companies, customers, partners, ownership, and territory review.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Salesforce API accounts",
              "spec_name": "salesforce_api_accounts"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "salesforce_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"account_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Account name\",\n      \"name\": \"account_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Account type\",\n      \"name\": \"account_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Industry\",\n      \"name\": \"industry\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Owner user id\",\n      \"name\": \"owner_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Parent account id\",\n      \"name\": \"parent_account_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Annual revenue\",\n      \"name\": \"annual_revenue\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Account observations for companies, customers, partners, ownership, and territory review.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Salesforce API accounts\",\n    \"spec_name\": \"salesforce_api_accounts\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"salesforce_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "salesforce"
          ]
        },
        {
          "specName": "salesforce_api_contacts",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "contact_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Account id",
                "name": "account_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed or tokenized email reference",
                "name": "email_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Owner user id",
                "name": "owner_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Job title",
                "name": "title",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Lead source",
                "name": "lead_source",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Contact observations for people associated with accounts, sales activity, and service follow-up.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Salesforce API contacts",
              "spec_name": "salesforce_api_contacts"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "salesforce_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"contact_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Account id\",\n      \"name\": \"account_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed or tokenized email reference\",\n      \"name\": \"email_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Owner user id\",\n      \"name\": \"owner_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Job title\",\n      \"name\": \"title\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Lead source\",\n      \"name\": \"lead_source\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Contact observations for people associated with accounts, sales activity, and service follow-up.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Salesforce API contacts\",\n    \"spec_name\": \"salesforce_api_contacts\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"salesforce_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "salesforce"
          ]
        },
        {
          "specName": "salesforce_api_leads",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "lead_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Company name",
                "name": "company",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed or tokenized email reference",
                "name": "email_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Owner user id",
                "name": "owner_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Lead status",
                "name": "lead_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Lead source",
                "name": "lead_source",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Converted account id",
                "name": "converted_account_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Lead observations for unconverted prospects, qualification state, source, and routing.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Salesforce API leads",
              "spec_name": "salesforce_api_leads"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "salesforce_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"lead_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Company name\",\n      \"name\": \"company\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed or tokenized email reference\",\n      \"name\": \"email_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Owner user id\",\n      \"name\": \"owner_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Lead status\",\n      \"name\": \"lead_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Lead source\",\n      \"name\": \"lead_source\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Converted account id\",\n      \"name\": \"converted_account_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Lead observations for unconverted prospects, qualification state, source, and routing.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Salesforce API leads\",\n    \"spec_name\": \"salesforce_api_leads\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"salesforce_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "salesforce"
          ]
        },
        {
          "specName": "salesforce_api_opportunities",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "opportunity_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Account id",
                "name": "account_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Opportunity name",
                "name": "opportunity_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Stage name",
                "name": "stage_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Close date",
                "name": "close_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Opportunity amount",
                "name": "amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Probability percent",
                "name": "probability",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Owner user id",
                "name": "owner_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Opportunity observations for pipeline, forecast, stage, close date, and account-level revenue work.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Salesforce API opportunities",
              "spec_name": "salesforce_api_opportunities"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "salesforce_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"opportunity_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Account id\",\n      \"name\": \"account_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Opportunity name\",\n      \"name\": \"opportunity_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Stage name\",\n      \"name\": \"stage_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Close date\",\n      \"name\": \"close_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Opportunity amount\",\n      \"name\": \"amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Probability percent\",\n      \"name\": \"probability\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Owner user id\",\n      \"name\": \"owner_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Opportunity observations for pipeline, forecast, stage, close date, and account-level revenue work.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Salesforce API opportunities\",\n    \"spec_name\": \"salesforce_api_opportunities\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"salesforce_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "salesforce"
          ]
        },
        {
          "specName": "salesforce_api_opportunity_contact_roles",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "opportunity_contact_role_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Opportunity id",
                "name": "opportunity_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Contact id",
                "name": "contact_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Contact role",
                "name": "role",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Primary contact flag",
                "name": "is_primary",
                "tests": [],
                "type": "boolean"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Opportunity contact role observations linking contacts to opportunities and buying committee roles.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Salesforce API opportunity contact roles",
              "spec_name": "salesforce_api_opportunity_contact_roles"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "salesforce_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"opportunity_contact_role_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Opportunity id\",\n      \"name\": \"opportunity_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Contact id\",\n      \"name\": \"contact_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Contact role\",\n      \"name\": \"role\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Primary contact flag\",\n      \"name\": \"is_primary\",\n      \"tests\": [],\n      \"type\": \"boolean\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Opportunity contact role observations linking contacts to opportunities and buying committee roles.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Salesforce API opportunity contact roles\",\n    \"spec_name\": \"salesforce_api_opportunity_contact_roles\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"salesforce_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "salesforce"
          ]
        },
        {
          "specName": "salesforce_api_cases",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "case_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Case number",
                "name": "case_number",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Account id",
                "name": "account_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Contact id",
                "name": "contact_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Owner user or queue id",
                "name": "owner_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Case status",
                "name": "case_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Case priority",
                "name": "priority",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Case origin",
                "name": "origin",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Case observations for customer issues, support queues, status, priority, and service ownership.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Salesforce API cases",
              "spec_name": "salesforce_api_cases"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "salesforce_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"case_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Case number\",\n      \"name\": \"case_number\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Account id\",\n      \"name\": \"account_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Contact id\",\n      \"name\": \"contact_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Owner user or queue id\",\n      \"name\": \"owner_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Case status\",\n      \"name\": \"case_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Case priority\",\n      \"name\": \"priority\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Case origin\",\n      \"name\": \"origin\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Case observations for customer issues, support queues, status, priority, and service ownership.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Salesforce API cases\",\n    \"spec_name\": \"salesforce_api_cases\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"salesforce_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "salesforce"
          ]
        },
        {
          "specName": "salesforce_api_campaigns",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "campaign_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Campaign name",
                "name": "campaign_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Campaign type",
                "name": "campaign_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Campaign status",
                "name": "campaign_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Parent campaign id",
                "name": "parent_campaign_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Budgeted cost",
                "name": "budgeted_cost",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Actual cost",
                "name": "actual_cost",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Campaign observations for marketing programs, campaign hierarchy, budget, status, and results.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Salesforce API campaigns",
              "spec_name": "salesforce_api_campaigns"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "salesforce_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"campaign_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Campaign name\",\n      \"name\": \"campaign_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Campaign type\",\n      \"name\": \"campaign_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Campaign status\",\n      \"name\": \"campaign_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Parent campaign id\",\n      \"name\": \"parent_campaign_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Budgeted cost\",\n      \"name\": \"budgeted_cost\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Actual cost\",\n      \"name\": \"actual_cost\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Campaign observations for marketing programs, campaign hierarchy, budget, status, and results.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Salesforce API campaigns\",\n    \"spec_name\": \"salesforce_api_campaigns\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"salesforce_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "salesforce"
          ]
        },
        {
          "specName": "salesforce_api_campaign_members",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "campaign_member_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Campaign id",
                "name": "campaign_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Lead id",
                "name": "lead_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Contact id",
                "name": "contact_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Member status",
                "name": "member_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Response flag",
                "name": "has_responded",
                "tests": [],
                "type": "boolean"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Campaign member observations linking leads or contacts to campaigns and response status.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Salesforce API campaign members",
              "spec_name": "salesforce_api_campaign_members"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "salesforce_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"campaign_member_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Campaign id\",\n      \"name\": \"campaign_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Lead id\",\n      \"name\": \"lead_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Contact id\",\n      \"name\": \"contact_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Member status\",\n      \"name\": \"member_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Response flag\",\n      \"name\": \"has_responded\",\n      \"tests\": [],\n      \"type\": \"boolean\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Campaign member observations linking leads or contacts to campaigns and response status.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Salesforce API campaign members\",\n    \"spec_name\": \"salesforce_api_campaign_members\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"salesforce_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "salesforce"
          ]
        },
        {
          "specName": "salesforce_api_tasks",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "task_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Owner user id",
                "name": "owner_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Lead or contact id",
                "name": "who_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Related account, opportunity, case, or custom object id",
                "name": "what_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Due date",
                "name": "activity_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Task status",
                "name": "task_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Task priority",
                "name": "priority",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Task observations for sales and service activity, due dates, completion, and related records.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Salesforce API tasks",
              "spec_name": "salesforce_api_tasks"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "salesforce_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"task_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Owner user id\",\n      \"name\": \"owner_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Lead or contact id\",\n      \"name\": \"who_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Related account, opportunity, case, or custom object id\",\n      \"name\": \"what_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Due date\",\n      \"name\": \"activity_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Task status\",\n      \"name\": \"task_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Task priority\",\n      \"name\": \"priority\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Task observations for sales and service activity, due dates, completion, and related records.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Salesforce API tasks\",\n    \"spec_name\": \"salesforce_api_tasks\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"salesforce_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "salesforce"
          ]
        },
        {
          "specName": "salesforce_api_events",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "event_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Owner user id",
                "name": "owner_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Lead or contact id",
                "name": "who_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Related record id",
                "name": "what_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Start datetime",
                "name": "start_datetime",
                "tests": [],
                "type": "string"
              },
              {
                "description": "End datetime",
                "name": "end_datetime",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Event subject",
                "name": "event_subject",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Event observations for meetings and calendar activity linked to accounts, contacts, and opportunities.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Salesforce API events",
              "spec_name": "salesforce_api_events"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "salesforce_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"event_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Owner user id\",\n      \"name\": \"owner_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Lead or contact id\",\n      \"name\": \"who_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Related record id\",\n      \"name\": \"what_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Start datetime\",\n      \"name\": \"start_datetime\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"End datetime\",\n      \"name\": \"end_datetime\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Event subject\",\n      \"name\": \"event_subject\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Event observations for meetings and calendar activity linked to accounts, contacts, and opportunities.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Salesforce API events\",\n    \"spec_name\": \"salesforce_api_events\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"salesforce_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "salesforce"
          ]
        },
        {
          "specName": "salesforce_api_products",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "product_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Product name",
                "name": "product_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Product code",
                "name": "product_code",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Product family",
                "name": "family",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Active flag",
                "name": "is_active",
                "tests": [],
                "type": "boolean"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Product observations for product catalog, quoting, ordering, and revenue workflows.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Salesforce API products",
              "spec_name": "salesforce_api_products"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "salesforce_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"product_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Product name\",\n      \"name\": \"product_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Product code\",\n      \"name\": \"product_code\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Product family\",\n      \"name\": \"family\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Active flag\",\n      \"name\": \"is_active\",\n      \"tests\": [],\n      \"type\": \"boolean\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Product observations for product catalog, quoting, ordering, and revenue workflows.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Salesforce API products\",\n    \"spec_name\": \"salesforce_api_products\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"salesforce_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "salesforce"
          ]
        },
        {
          "specName": "salesforce_api_pricebook_entries",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "pricebook_entry_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Pricebook id",
                "name": "pricebook_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Product id",
                "name": "product_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Unit price",
                "name": "unit_price",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Active flag",
                "name": "is_active",
                "tests": [],
                "type": "boolean"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Pricebook entry observations for product pricing by pricebook and currency.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Salesforce API pricebook entries",
              "spec_name": "salesforce_api_pricebook_entries"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "salesforce_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"pricebook_entry_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Pricebook id\",\n      \"name\": \"pricebook_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Product id\",\n      \"name\": \"product_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Unit price\",\n      \"name\": \"unit_price\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Active flag\",\n      \"name\": \"is_active\",\n      \"tests\": [],\n      \"type\": \"boolean\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Pricebook entry observations for product pricing by pricebook and currency.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Salesforce API pricebook entries\",\n    \"spec_name\": \"salesforce_api_pricebook_entries\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"salesforce_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "salesforce"
          ]
        },
        {
          "specName": "salesforce_api_quotes",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "quote_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Opportunity id",
                "name": "opportunity_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Quote number",
                "name": "quote_number",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Quote status",
                "name": "quote_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Expiration date",
                "name": "expiration_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Total price",
                "name": "total_price",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Quote observations for sales proposals, quote status, totals, and opportunity linkage.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Salesforce API quotes",
              "spec_name": "salesforce_api_quotes"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "salesforce_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"quote_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Opportunity id\",\n      \"name\": \"opportunity_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Quote number\",\n      \"name\": \"quote_number\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Quote status\",\n      \"name\": \"quote_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Expiration date\",\n      \"name\": \"expiration_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Total price\",\n      \"name\": \"total_price\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Quote observations for sales proposals, quote status, totals, and opportunity linkage.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Salesforce API quotes\",\n    \"spec_name\": \"salesforce_api_quotes\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"salesforce_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "salesforce"
          ]
        },
        {
          "specName": "salesforce_api_quote_line_items",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "quote_line_item_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Quote id",
                "name": "quote_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Product id",
                "name": "product_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Quantity",
                "name": "quantity",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Unit price",
                "name": "unit_price",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Discount percent",
                "name": "discount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Quote line item observations for products, quantities, pricing, and discount review.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Salesforce API quote line items",
              "spec_name": "salesforce_api_quote_line_items"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "salesforce_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"quote_line_item_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Quote id\",\n      \"name\": \"quote_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Product id\",\n      \"name\": \"product_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Quantity\",\n      \"name\": \"quantity\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Unit price\",\n      \"name\": \"unit_price\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Discount percent\",\n      \"name\": \"discount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Quote line item observations for products, quantities, pricing, and discount review.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Salesforce API quote line items\",\n    \"spec_name\": \"salesforce_api_quote_line_items\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"salesforce_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "salesforce"
          ]
        },
        {
          "specName": "salesforce_api_orders",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "order_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Account id",
                "name": "account_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Contract id",
                "name": "contract_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Order number",
                "name": "order_number",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Effective date",
                "name": "effective_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Order status",
                "name": "order_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Total amount",
                "name": "total_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Order observations for accepted sales work, account linkage, effective date, and status.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Salesforce API orders",
              "spec_name": "salesforce_api_orders"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "salesforce_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"order_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Account id\",\n      \"name\": \"account_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Contract id\",\n      \"name\": \"contract_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Order number\",\n      \"name\": \"order_number\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Effective date\",\n      \"name\": \"effective_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Order status\",\n      \"name\": \"order_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Total amount\",\n      \"name\": \"total_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Order observations for accepted sales work, account linkage, effective date, and status.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Salesforce API orders\",\n    \"spec_name\": \"salesforce_api_orders\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"salesforce_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "salesforce"
          ]
        },
        {
          "specName": "salesforce_api_order_items",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "order_item_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Order id",
                "name": "order_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Product id",
                "name": "product_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Quantity",
                "name": "quantity",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Unit price",
                "name": "unit_price",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Total price",
                "name": "total_price",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Order item observations for product-level order quantities and prices.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Salesforce API order items",
              "spec_name": "salesforce_api_order_items"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "salesforce_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"order_item_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Order id\",\n      \"name\": \"order_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Product id\",\n      \"name\": \"product_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Quantity\",\n      \"name\": \"quantity\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Unit price\",\n      \"name\": \"unit_price\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Total price\",\n      \"name\": \"total_price\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Order item observations for product-level order quantities and prices.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Salesforce API order items\",\n    \"spec_name\": \"salesforce_api_order_items\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"salesforce_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "salesforce"
          ]
        },
        {
          "specName": "salesforce_api_contracts",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "contract_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Account id",
                "name": "account_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Contract number",
                "name": "contract_number",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Contract status",
                "name": "contract_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Start date",
                "name": "start_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "End date",
                "name": "end_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Contract term",
                "name": "contract_term",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Contract observations for agreement status, term, account linkage, and renewal workflows.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Salesforce API contracts",
              "spec_name": "salesforce_api_contracts"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "salesforce_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"contract_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Account id\",\n      \"name\": \"account_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Contract number\",\n      \"name\": \"contract_number\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Contract status\",\n      \"name\": \"contract_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Start date\",\n      \"name\": \"start_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"End date\",\n      \"name\": \"end_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Contract term\",\n      \"name\": \"contract_term\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Contract observations for agreement status, term, account linkage, and renewal workflows.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Salesforce API contracts\",\n    \"spec_name\": \"salesforce_api_contracts\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"salesforce_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "salesforce"
          ]
        },
        {
          "specName": "salesforce_api_assets",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "asset_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Account id",
                "name": "account_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Contact id",
                "name": "contact_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Product id",
                "name": "product_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed or tokenized serial number",
                "name": "serial_number_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Install date",
                "name": "install_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Asset status",
                "name": "asset_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Asset observations for installed products, customer ownership, and renewal/service context.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Salesforce API assets",
              "spec_name": "salesforce_api_assets"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "salesforce_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"asset_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Account id\",\n      \"name\": \"account_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Contact id\",\n      \"name\": \"contact_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Product id\",\n      \"name\": \"product_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed or tokenized serial number\",\n      \"name\": \"serial_number_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Install date\",\n      \"name\": \"install_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Asset status\",\n      \"name\": \"asset_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Asset observations for installed products, customer ownership, and renewal/service context.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Salesforce API assets\",\n    \"spec_name\": \"salesforce_api_assets\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"salesforce_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "salesforce"
          ]
        },
        {
          "specName": "salesforce_api_entitlements",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "entitlement_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Account id",
                "name": "account_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Asset id",
                "name": "asset_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Entitlement name",
                "name": "entitlement_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Start date",
                "name": "start_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "End date",
                "name": "end_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Entitlement status",
                "name": "entitlement_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Entitlement observations for support coverage, service terms, and account-level support rules.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Salesforce API entitlements",
              "spec_name": "salesforce_api_entitlements"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "salesforce_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"entitlement_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Account id\",\n      \"name\": \"account_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Asset id\",\n      \"name\": \"asset_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Entitlement name\",\n      \"name\": \"entitlement_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Start date\",\n      \"name\": \"start_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"End date\",\n      \"name\": \"end_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Entitlement status\",\n      \"name\": \"entitlement_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Entitlement observations for support coverage, service terms, and account-level support rules.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Salesforce API entitlements\",\n    \"spec_name\": \"salesforce_api_entitlements\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"salesforce_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "salesforce"
          ]
        },
        {
          "specName": "salesforce_api_users",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "user_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed or tokenized username",
                "name": "username_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed or tokenized email reference",
                "name": "email_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Profile id",
                "name": "profile_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "User role id",
                "name": "user_role_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Active flag",
                "name": "is_active",
                "tests": [],
                "type": "boolean"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "User observations for ownership, assignment, queues, and workflow routing.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Salesforce API users",
              "spec_name": "salesforce_api_users"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "salesforce_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"user_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed or tokenized username\",\n      \"name\": \"username_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed or tokenized email reference\",\n      \"name\": \"email_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Profile id\",\n      \"name\": \"profile_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"User role id\",\n      \"name\": \"user_role_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Active flag\",\n      \"name\": \"is_active\",\n      \"tests\": [],\n      \"type\": \"boolean\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"User observations for ownership, assignment, queues, and workflow routing.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Salesforce API users\",\n    \"spec_name\": \"salesforce_api_users\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"salesforce_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "salesforce"
          ]
        },
        {
          "specName": "salesforce_api_custom_objects",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "custom_object_record_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Custom object API name",
                "name": "object_api_name",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Record name",
                "name": "record_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Owner user id",
                "name": "owner_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Related account id",
                "name": "account_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Custom object observations for tenant-specific CRM records exposed through Salesforce.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Salesforce API custom objects",
              "spec_name": "salesforce_api_custom_objects"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "salesforce_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"custom_object_record_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Custom object API name\",\n      \"name\": \"object_api_name\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Record name\",\n      \"name\": \"record_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Owner user id\",\n      \"name\": \"owner_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Related account id\",\n      \"name\": \"account_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Custom object observations for tenant-specific CRM records exposed through Salesforce.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Salesforce API custom objects\",\n    \"spec_name\": \"salesforce_api_custom_objects\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"salesforce_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "salesforce"
          ]
        },
        {
          "specName": "salesforce_api_change_events",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "change_event_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Entity API name",
                "name": "entity_name",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Changed record id",
                "name": "record_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Create, update, delete, or undelete",
                "name": "change_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Commit timestamp",
                "name": "commit_timestamp",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Change event observations for replay, sync status, and changed CRM records.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Salesforce API change events",
              "spec_name": "salesforce_api_change_events"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "salesforce_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"change_event_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Entity API name\",\n      \"name\": \"entity_name\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Changed record id\",\n      \"name\": \"record_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Create, update, delete, or undelete\",\n      \"name\": \"change_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Commit timestamp\",\n      \"name\": \"commit_timestamp\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Change event observations for replay, sync status, and changed CRM records.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Salesforce API change events\",\n    \"spec_name\": \"salesforce_api_change_events\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"salesforce_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "salesforce"
          ]
        },
        {
          "specName": "salesforce_agent_api_account_updates",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "account_update_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "account_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Field name",
                "name": "field_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Current value",
                "name": "current_value",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Proposed value",
                "name": "proposed_value",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed account update proposals before outbound Salesforce sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Salesforce agent API account updates",
              "spec_name": "salesforce_agent_api_account_updates",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "salesforce_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"account_update_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"account_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Field name\",\n      \"name\": \"field_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Current value\",\n      \"name\": \"current_value\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Proposed value\",\n      \"name\": \"proposed_value\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed account update proposals before outbound Salesforce sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Salesforce agent API account updates\",\n    \"spec_name\": \"salesforce_agent_api_account_updates\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"salesforce_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "salesforce"
          ]
        },
        {
          "specName": "salesforce_agent_api_contact_lead_updates",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "person_update_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "person_record_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "contact or lead",
                "name": "person_record_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Field name",
                "name": "field_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Current value",
                "name": "current_value",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Proposed value",
                "name": "proposed_value",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed contact or lead update proposals before outbound Salesforce sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Salesforce agent API contact/lead updates",
              "spec_name": "salesforce_agent_api_contact_lead_updates",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "salesforce_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"person_update_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"person_record_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"contact or lead\",\n      \"name\": \"person_record_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Field name\",\n      \"name\": \"field_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Current value\",\n      \"name\": \"current_value\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Proposed value\",\n      \"name\": \"proposed_value\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed contact or lead update proposals before outbound Salesforce sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Salesforce agent API contact/lead updates\",\n    \"spec_name\": \"salesforce_agent_api_contact_lead_updates\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"salesforce_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "salesforce"
          ]
        },
        {
          "specName": "salesforce_agent_api_opportunity_updates",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "opportunity_update_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "opportunity_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Current stage",
                "name": "current_stage_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Proposed stage",
                "name": "proposed_stage_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Current amount",
                "name": "current_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Proposed amount",
                "name": "proposed_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Proposed close date",
                "name": "proposed_close_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed opportunity update proposals before outbound Salesforce sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Salesforce agent API opportunity updates",
              "spec_name": "salesforce_agent_api_opportunity_updates",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "salesforce_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"opportunity_update_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"opportunity_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Current stage\",\n      \"name\": \"current_stage_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Proposed stage\",\n      \"name\": \"proposed_stage_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Current amount\",\n      \"name\": \"current_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Proposed amount\",\n      \"name\": \"proposed_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Proposed close date\",\n      \"name\": \"proposed_close_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed opportunity update proposals before outbound Salesforce sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Salesforce agent API opportunity updates\",\n    \"spec_name\": \"salesforce_agent_api_opportunity_updates\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"salesforce_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "salesforce"
          ]
        },
        {
          "specName": "salesforce_agent_api_case_updates",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "case_update_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "case_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Current status",
                "name": "current_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Proposed status",
                "name": "proposed_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Current owner id",
                "name": "current_owner_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Proposed owner id",
                "name": "proposed_owner_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Proposed priority",
                "name": "proposed_priority",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed case update proposals before outbound Salesforce sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Salesforce agent API case updates",
              "spec_name": "salesforce_agent_api_case_updates",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "salesforce_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"case_update_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"case_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Current status\",\n      \"name\": \"current_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Proposed status\",\n      \"name\": \"proposed_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Current owner id\",\n      \"name\": \"current_owner_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Proposed owner id\",\n      \"name\": \"proposed_owner_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Proposed priority\",\n      \"name\": \"proposed_priority\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed case update proposals before outbound Salesforce sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Salesforce agent API case updates\",\n    \"spec_name\": \"salesforce_agent_api_case_updates\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"salesforce_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "salesforce"
          ]
        },
        {
          "specName": "salesforce_agent_api_campaign_member_updates",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "campaign_member_update_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "campaign_member_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Campaign id",
                "name": "campaign_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Current member status",
                "name": "current_member_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Proposed member status",
                "name": "proposed_member_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed campaign member update proposals before outbound Salesforce sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Salesforce agent API campaign member updates",
              "spec_name": "salesforce_agent_api_campaign_member_updates",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "salesforce_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"campaign_member_update_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"campaign_member_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Campaign id\",\n      \"name\": \"campaign_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Current member status\",\n      \"name\": \"current_member_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Proposed member status\",\n      \"name\": \"proposed_member_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed campaign member update proposals before outbound Salesforce sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Salesforce agent API campaign member updates\",\n    \"spec_name\": \"salesforce_agent_api_campaign_member_updates\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"salesforce_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "salesforce"
          ]
        }
      ]
    },
    {
      "id": "hubspot_crm_library",
      "type": "collection",
      "domains": [
        "crm",
        "operations"
      ],
      "systems": [
        "hubspot"
      ],
      "version": "1.0.0",
      "summary": "HubSpot CRM specs for contacts, companies, deals, tickets, leads, products, line items, quotes, pipelines, owners, associations, lists, forms, activities, custom objects, properties, webhook events, and governed CRM updates.",
      "coverageStatus": "Extended",
      "coverageNotes": "Covers the core HubSpot CRM objects and activity records agents usually need for go-to-market memory. It does not mirror every marketing asset, CMS object, report, or account-specific property.",
      "sourceDocs": [
        {
          "label": "HubSpot CRM object APIs",
          "url": "https://developers.hubspot.com/docs/api-reference/latest/crm/using-object-apis"
        },
        {
          "label": "HubSpot CRM concepts",
          "url": "https://developers.hubspot.com/docs/api/crm/understanding-the-crm"
        },
        {
          "label": "HubSpot custom objects API",
          "url": "https://developers.hubspot.com/docs/guides/api/crm/objects/custom-objects"
        }
      ],
      "nextObjects": [
        "deals_splits",
        "orders",
        "invoices",
        "payments",
        "feedback_submissions",
        "conversations",
        "playbooks",
        "workflows",
        "marketing_email_assets"
      ],
      "omittedObjects": [
        "raw contact personal details",
        "OAuth/token management",
        "CMS pages and themes",
        "full reporting exports",
        "all account-specific properties"
      ],
      "needs": [
        "A HubSpot agent/operator role. The generated calls use hubspot_agent."
      ],
      "usefulFor": [
        "SMB CRM memory",
        "Deal pipeline review",
        "Support ticket follow-up",
        "Marketing conversion review",
        "Governed contact/company/deal/ticket changes"
      ],
      "extendWith": [
        "Links from Shopify/Stripe/Square customer records into HubSpot contacts or companies",
        "Deal-to-accounting handoff relationships with QuickBooks or NetSuite",
        "Ticket-to-issue relationships with ops_issues or project management specs"
      ],
      "searchTerms": [
        "hubspot",
        "crm",
        "contacts",
        "companies",
        "deals",
        "tickets",
        "leads",
        "products",
        "line items",
        "quotes",
        "pipelines",
        "owners",
        "associations",
        "forms",
        "activities"
      ],
      "links": [
        {
          "from": "hubspot_agent_api_company_updates",
          "to": "hubspot_api_companies",
          "kind": "source_link",
          "description": "Company update proposals cite the current company observation."
        },
        {
          "from": "hubspot_agent_api_contact_updates",
          "to": "hubspot_api_contacts",
          "kind": "source_link",
          "description": "Contact update proposals cite the current contact observation."
        },
        {
          "from": "hubspot_agent_api_deal_updates",
          "to": "hubspot_api_deals",
          "kind": "source_link",
          "description": "Deal update proposals cite the current deal observation."
        },
        {
          "from": "hubspot_agent_api_ticket_updates",
          "to": "hubspot_api_tickets",
          "kind": "source_link",
          "description": "Ticket update proposals cite the current ticket observation."
        },
        {
          "from": "hubspot_agent_api_association_updates",
          "to": "hubspot_api_associations",
          "kind": "source_link",
          "description": "Association update proposals cite the current association observation."
        }
      ],
      "installedSpecs": [
        {
          "id": "hubspot_api_contacts",
          "domain": "Observation",
          "purpose": "Contact observations.",
          "systems": [
            "hubspot"
          ]
        },
        {
          "id": "hubspot_api_companies",
          "domain": "Observation",
          "purpose": "Company observations.",
          "systems": [
            "hubspot"
          ]
        },
        {
          "id": "hubspot_api_deals",
          "domain": "Observation",
          "purpose": "Deal pipeline observations.",
          "systems": [
            "hubspot"
          ]
        },
        {
          "id": "hubspot_api_tickets",
          "domain": "Observation",
          "purpose": "Support ticket observations.",
          "systems": [
            "hubspot"
          ]
        },
        {
          "id": "hubspot_api_leads",
          "domain": "Observation",
          "purpose": "Lead observations.",
          "systems": [
            "hubspot"
          ]
        },
        {
          "id": "hubspot_api_products",
          "domain": "Observation",
          "purpose": "Product catalog observations.",
          "systems": [
            "hubspot"
          ]
        },
        {
          "id": "hubspot_api_line_items",
          "domain": "Observation",
          "purpose": "Line item observations.",
          "systems": [
            "hubspot"
          ]
        },
        {
          "id": "hubspot_api_quotes",
          "domain": "Observation",
          "purpose": "Quote observations.",
          "systems": [
            "hubspot"
          ]
        },
        {
          "id": "hubspot_api_pipelines",
          "domain": "Observation",
          "purpose": "Pipeline and stage observations.",
          "systems": [
            "hubspot"
          ]
        },
        {
          "id": "hubspot_api_owners",
          "domain": "Observation",
          "purpose": "Owner and assignment observations.",
          "systems": [
            "hubspot"
          ]
        },
        {
          "id": "hubspot_api_associations",
          "domain": "Observation",
          "purpose": "CRM association observations.",
          "systems": [
            "hubspot"
          ]
        },
        {
          "id": "hubspot_api_lists",
          "domain": "Observation",
          "purpose": "List membership observations.",
          "systems": [
            "hubspot"
          ]
        },
        {
          "id": "hubspot_api_marketing_events",
          "domain": "Observation",
          "purpose": "Marketing event observations.",
          "systems": [
            "hubspot"
          ]
        },
        {
          "id": "hubspot_api_forms",
          "domain": "Observation",
          "purpose": "Form definition observations.",
          "systems": [
            "hubspot"
          ]
        },
        {
          "id": "hubspot_api_form_submissions",
          "domain": "Observation",
          "purpose": "Form submission observations.",
          "systems": [
            "hubspot"
          ]
        },
        {
          "id": "hubspot_api_calls",
          "domain": "Observation",
          "purpose": "Call engagement observations.",
          "systems": [
            "hubspot"
          ]
        },
        {
          "id": "hubspot_api_emails",
          "domain": "Observation",
          "purpose": "Email engagement observations.",
          "systems": [
            "hubspot"
          ]
        },
        {
          "id": "hubspot_api_meetings",
          "domain": "Observation",
          "purpose": "Meeting engagement observations.",
          "systems": [
            "hubspot"
          ]
        },
        {
          "id": "hubspot_api_notes",
          "domain": "Observation",
          "purpose": "Note engagement observations.",
          "systems": [
            "hubspot"
          ]
        },
        {
          "id": "hubspot_api_tasks",
          "domain": "Observation",
          "purpose": "Task engagement observations.",
          "systems": [
            "hubspot"
          ]
        },
        {
          "id": "hubspot_api_custom_objects",
          "domain": "Observation",
          "purpose": "Tenant custom-object observations.",
          "systems": [
            "hubspot"
          ]
        },
        {
          "id": "hubspot_api_property_definitions",
          "domain": "Observation",
          "purpose": "Property schema observations.",
          "systems": [
            "hubspot"
          ]
        },
        {
          "id": "hubspot_api_webhook_events",
          "domain": "Observation",
          "purpose": "Webhook event observations.",
          "systems": [
            "hubspot"
          ]
        },
        {
          "id": "hubspot_agent_api_company_updates",
          "domain": "Commitment workflow",
          "purpose": "Governed company updates.",
          "systems": [
            "hubspot"
          ]
        },
        {
          "id": "hubspot_agent_api_contact_updates",
          "domain": "Commitment workflow",
          "purpose": "Governed contact updates.",
          "systems": [
            "hubspot"
          ]
        },
        {
          "id": "hubspot_agent_api_deal_updates",
          "domain": "Commitment workflow",
          "purpose": "Governed deal updates.",
          "systems": [
            "hubspot"
          ]
        },
        {
          "id": "hubspot_agent_api_ticket_updates",
          "domain": "Commitment workflow",
          "purpose": "Governed ticket updates.",
          "systems": [
            "hubspot"
          ]
        },
        {
          "id": "hubspot_agent_api_association_updates",
          "domain": "Commitment workflow",
          "purpose": "Governed association updates.",
          "systems": [
            "hubspot"
          ]
        }
      ],
      "createSpecPayloads": [
        {
          "specName": "hubspot_api_contacts",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "contact_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed or tokenized email reference",
                "name": "email_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Primary company id",
                "name": "company_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "HubSpot owner id",
                "name": "owner_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Lifecycle stage",
                "name": "lifecycle_stage",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Lead status",
                "name": "lead_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Contact observations for people, lifecycle stage, ownership, and go-to-market follow-up.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "HubSpot API contacts",
              "spec_name": "hubspot_api_contacts"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "hubspot_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"contact_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed or tokenized email reference\",\n      \"name\": \"email_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Primary company id\",\n      \"name\": \"company_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"HubSpot owner id\",\n      \"name\": \"owner_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Lifecycle stage\",\n      \"name\": \"lifecycle_stage\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Lead status\",\n      \"name\": \"lead_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Contact observations for people, lifecycle stage, ownership, and go-to-market follow-up.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"HubSpot API contacts\",\n    \"spec_name\": \"hubspot_api_contacts\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"hubspot_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "hubspot"
          ]
        },
        {
          "specName": "hubspot_api_companies",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "company_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Company name",
                "name": "company_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed or tokenized domain reference",
                "name": "domain_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "HubSpot owner id",
                "name": "owner_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Industry",
                "name": "industry",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Lifecycle stage",
                "name": "lifecycle_stage",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Company observations for accounts, domains, ownership, lifecycle stage, and firmographic review.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "HubSpot API companies",
              "spec_name": "hubspot_api_companies"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "hubspot_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"company_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Company name\",\n      \"name\": \"company_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed or tokenized domain reference\",\n      \"name\": \"domain_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"HubSpot owner id\",\n      \"name\": \"owner_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Industry\",\n      \"name\": \"industry\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Lifecycle stage\",\n      \"name\": \"lifecycle_stage\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Company observations for accounts, domains, ownership, lifecycle stage, and firmographic review.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"HubSpot API companies\",\n    \"spec_name\": \"hubspot_api_companies\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"hubspot_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "hubspot"
          ]
        },
        {
          "specName": "hubspot_api_deals",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "deal_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Deal name",
                "name": "deal_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Pipeline id",
                "name": "pipeline_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Deal stage",
                "name": "deal_stage",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Deal amount",
                "name": "amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Close date",
                "name": "close_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "HubSpot owner id",
                "name": "owner_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Deal observations for pipeline, stage, amount, close date, and associated revenue workflows.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "HubSpot API deals",
              "spec_name": "hubspot_api_deals"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "hubspot_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"deal_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Deal name\",\n      \"name\": \"deal_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Pipeline id\",\n      \"name\": \"pipeline_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Deal stage\",\n      \"name\": \"deal_stage\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Deal amount\",\n      \"name\": \"amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Close date\",\n      \"name\": \"close_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"HubSpot owner id\",\n      \"name\": \"owner_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Deal observations for pipeline, stage, amount, close date, and associated revenue workflows.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"HubSpot API deals\",\n    \"spec_name\": \"hubspot_api_deals\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"hubspot_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "hubspot"
          ]
        },
        {
          "specName": "hubspot_api_tickets",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "ticket_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Ticket subject",
                "name": "subject",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Pipeline id",
                "name": "pipeline_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Ticket stage",
                "name": "ticket_stage",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Priority",
                "name": "priority",
                "tests": [],
                "type": "string"
              },
              {
                "description": "HubSpot owner id",
                "name": "owner_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Ticket observations for support issues, pipeline stage, priority, and owner routing.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "HubSpot API tickets",
              "spec_name": "hubspot_api_tickets"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "hubspot_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"ticket_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Ticket subject\",\n      \"name\": \"subject\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Pipeline id\",\n      \"name\": \"pipeline_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Ticket stage\",\n      \"name\": \"ticket_stage\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Priority\",\n      \"name\": \"priority\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"HubSpot owner id\",\n      \"name\": \"owner_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Ticket observations for support issues, pipeline stage, priority, and owner routing.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"HubSpot API tickets\",\n    \"spec_name\": \"hubspot_api_tickets\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"hubspot_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "hubspot"
          ]
        },
        {
          "specName": "hubspot_api_leads",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "lead_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Lead name",
                "name": "lead_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Associated contact id",
                "name": "associated_contact_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Associated company id",
                "name": "associated_company_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "HubSpot owner id",
                "name": "owner_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Lead status",
                "name": "lead_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Lead observations for prospect qualification, associated contacts, and associated companies.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "HubSpot API leads",
              "spec_name": "hubspot_api_leads"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "hubspot_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"lead_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Lead name\",\n      \"name\": \"lead_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Associated contact id\",\n      \"name\": \"associated_contact_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Associated company id\",\n      \"name\": \"associated_company_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"HubSpot owner id\",\n      \"name\": \"owner_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Lead status\",\n      \"name\": \"lead_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Lead observations for prospect qualification, associated contacts, and associated companies.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"HubSpot API leads\",\n    \"spec_name\": \"hubspot_api_leads\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"hubspot_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "hubspot"
          ]
        },
        {
          "specName": "hubspot_api_products",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "product_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Product name",
                "name": "product_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "SKU",
                "name": "sku",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Product price",
                "name": "price",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Folder id",
                "name": "folder_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Product observations for HubSpot product catalog and line-item creation.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "HubSpot API products",
              "spec_name": "hubspot_api_products"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "hubspot_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"product_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Product name\",\n      \"name\": \"product_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"SKU\",\n      \"name\": \"sku\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Product price\",\n      \"name\": \"price\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Folder id\",\n      \"name\": \"folder_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Product observations for HubSpot product catalog and line-item creation.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"HubSpot API products\",\n    \"spec_name\": \"hubspot_api_products\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"hubspot_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "hubspot"
          ]
        },
        {
          "specName": "hubspot_api_line_items",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "line_item_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Product id",
                "name": "product_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Deal id",
                "name": "deal_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Quote id",
                "name": "quote_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Quantity",
                "name": "quantity",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Unit price",
                "name": "price",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Line amount",
                "name": "amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Line item observations for products, quantities, prices, and deal or quote totals.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "HubSpot API line items",
              "spec_name": "hubspot_api_line_items"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "hubspot_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"line_item_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Product id\",\n      \"name\": \"product_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Deal id\",\n      \"name\": \"deal_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Quote id\",\n      \"name\": \"quote_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Quantity\",\n      \"name\": \"quantity\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Unit price\",\n      \"name\": \"price\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Line amount\",\n      \"name\": \"amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Line item observations for products, quantities, prices, and deal or quote totals.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"HubSpot API line items\",\n    \"spec_name\": \"hubspot_api_line_items\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"hubspot_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "hubspot"
          ]
        },
        {
          "specName": "hubspot_api_quotes",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "quote_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Deal id",
                "name": "deal_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Quote title",
                "name": "quote_title",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Quote status",
                "name": "quote_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Expiration date",
                "name": "expiration_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Total amount",
                "name": "total_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Quote observations for deal-linked sales proposals, status, expiration, and totals.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "HubSpot API quotes",
              "spec_name": "hubspot_api_quotes"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "hubspot_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"quote_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Deal id\",\n      \"name\": \"deal_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Quote title\",\n      \"name\": \"quote_title\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Quote status\",\n      \"name\": \"quote_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Expiration date\",\n      \"name\": \"expiration_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Total amount\",\n      \"name\": \"total_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Quote observations for deal-linked sales proposals, status, expiration, and totals.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"HubSpot API quotes\",\n    \"spec_name\": \"hubspot_api_quotes\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"hubspot_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "hubspot"
          ]
        },
        {
          "specName": "hubspot_api_pipelines",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "pipeline_snapshot_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Object type such as deals or tickets",
                "name": "object_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Pipeline id",
                "name": "pipeline_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Pipeline label",
                "name": "pipeline_label",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Stage count",
                "name": "stage_count",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Archived flag",
                "name": "archived",
                "tests": [],
                "type": "boolean"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Pipeline observations for deal and ticket stages, display order, and lifecycle structure.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "HubSpot API pipelines",
              "spec_name": "hubspot_api_pipelines"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "hubspot_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"pipeline_snapshot_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Object type such as deals or tickets\",\n      \"name\": \"object_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Pipeline id\",\n      \"name\": \"pipeline_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Pipeline label\",\n      \"name\": \"pipeline_label\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Stage count\",\n      \"name\": \"stage_count\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Archived flag\",\n      \"name\": \"archived\",\n      \"tests\": [],\n      \"type\": \"boolean\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Pipeline observations for deal and ticket stages, display order, and lifecycle structure.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"HubSpot API pipelines\",\n    \"spec_name\": \"hubspot_api_pipelines\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"hubspot_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "hubspot"
          ]
        },
        {
          "specName": "hubspot_api_owners",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "owner_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed or tokenized email reference",
                "name": "email_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "HubSpot user id",
                "name": "user_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Primary team id",
                "name": "team_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Archived flag",
                "name": "archived",
                "tests": [],
                "type": "boolean"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Owner observations for assignment, routing, and team ownership.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "HubSpot API owners",
              "spec_name": "hubspot_api_owners"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "hubspot_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"owner_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed or tokenized email reference\",\n      \"name\": \"email_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"HubSpot user id\",\n      \"name\": \"user_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Primary team id\",\n      \"name\": \"team_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Archived flag\",\n      \"name\": \"archived\",\n      \"tests\": [],\n      \"type\": \"boolean\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Owner observations for assignment, routing, and team ownership.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"HubSpot API owners\",\n    \"spec_name\": \"hubspot_api_owners\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"hubspot_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "hubspot"
          ]
        },
        {
          "specName": "hubspot_api_associations",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "association_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "From object type",
                "name": "from_object_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "From object id",
                "name": "from_object_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "To object type",
                "name": "to_object_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "To object id",
                "name": "to_object_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Association label",
                "name": "association_label",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Association observations linking contacts, companies, deals, tickets, activities, and custom objects.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "HubSpot API associations",
              "spec_name": "hubspot_api_associations"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "hubspot_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"association_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"From object type\",\n      \"name\": \"from_object_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"From object id\",\n      \"name\": \"from_object_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"To object type\",\n      \"name\": \"to_object_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"To object id\",\n      \"name\": \"to_object_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Association label\",\n      \"name\": \"association_label\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Association observations linking contacts, companies, deals, tickets, activities, and custom objects.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"HubSpot API associations\",\n    \"spec_name\": \"hubspot_api_associations\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"hubspot_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "hubspot"
          ]
        },
        {
          "specName": "hubspot_api_lists",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "list_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "List name",
                "name": "list_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Object type",
                "name": "object_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Processing type",
                "name": "processing_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Member count",
                "name": "member_count",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "List observations for segmented contacts or companies used in marketing, sales, and operations.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "HubSpot API lists",
              "spec_name": "hubspot_api_lists"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "hubspot_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"list_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"List name\",\n      \"name\": \"list_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Object type\",\n      \"name\": \"object_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Processing type\",\n      \"name\": \"processing_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Member count\",\n      \"name\": \"member_count\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"List observations for segmented contacts or companies used in marketing, sales, and operations.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"HubSpot API lists\",\n    \"spec_name\": \"hubspot_api_lists\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"hubspot_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "hubspot"
          ]
        },
        {
          "specName": "hubspot_api_marketing_events",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "marketing_event_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Event name",
                "name": "event_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Event type",
                "name": "event_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Start datetime",
                "name": "start_datetime",
                "tests": [],
                "type": "string"
              },
              {
                "description": "End datetime",
                "name": "end_datetime",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Registrant count",
                "name": "registrant_count",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Attendee count",
                "name": "attendee_count",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Marketing event observations for webinars, trade shows, attendance, and campaign follow-up.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "HubSpot API marketing events",
              "spec_name": "hubspot_api_marketing_events"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "hubspot_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"marketing_event_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Event name\",\n      \"name\": \"event_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Event type\",\n      \"name\": \"event_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Start datetime\",\n      \"name\": \"start_datetime\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"End datetime\",\n      \"name\": \"end_datetime\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Registrant count\",\n      \"name\": \"registrant_count\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Attendee count\",\n      \"name\": \"attendee_count\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Marketing event observations for webinars, trade shows, attendance, and campaign follow-up.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"HubSpot API marketing events\",\n    \"spec_name\": \"hubspot_api_marketing_events\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"hubspot_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "hubspot"
          ]
        },
        {
          "specName": "hubspot_api_forms",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "form_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Form name",
                "name": "form_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Form type",
                "name": "form_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Created timestamp",
                "name": "created_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Submission count",
                "name": "submission_count",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Form observations for lead capture, conversion paths, and field/schema review.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "HubSpot API forms",
              "spec_name": "hubspot_api_forms"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "hubspot_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"form_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Form name\",\n      \"name\": \"form_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Form type\",\n      \"name\": \"form_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Created timestamp\",\n      \"name\": \"created_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Submission count\",\n      \"name\": \"submission_count\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Form observations for lead capture, conversion paths, and field/schema review.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"HubSpot API forms\",\n    \"spec_name\": \"hubspot_api_forms\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"hubspot_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "hubspot"
          ]
        },
        {
          "specName": "hubspot_api_form_submissions",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "form_submission_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Form id",
                "name": "form_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Contact id",
                "name": "contact_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Submitted timestamp",
                "name": "submitted_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed or tokenized page URL",
                "name": "page_url_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Form submission observations for lead capture, source evidence, and conversion review.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "HubSpot API form submissions",
              "spec_name": "hubspot_api_form_submissions"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "hubspot_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"form_submission_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Form id\",\n      \"name\": \"form_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Contact id\",\n      \"name\": \"contact_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Submitted timestamp\",\n      \"name\": \"submitted_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed or tokenized page URL\",\n      \"name\": \"page_url_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Form submission observations for lead capture, source evidence, and conversion review.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"HubSpot API form submissions\",\n    \"spec_name\": \"hubspot_api_form_submissions\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"hubspot_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "hubspot"
          ]
        },
        {
          "specName": "hubspot_api_calls",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "call_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "HubSpot owner id",
                "name": "owner_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Call status",
                "name": "call_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Call outcome",
                "name": "call_outcome",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Activity date",
                "name": "activity_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Associated record id",
                "name": "associated_object_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Call engagement observations for sales and support activity, outcomes, and associations.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "HubSpot API calls",
              "spec_name": "hubspot_api_calls"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "hubspot_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"call_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"HubSpot owner id\",\n      \"name\": \"owner_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Call status\",\n      \"name\": \"call_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Call outcome\",\n      \"name\": \"call_outcome\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Activity date\",\n      \"name\": \"activity_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Associated record id\",\n      \"name\": \"associated_object_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Call engagement observations for sales and support activity, outcomes, and associations.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"HubSpot API calls\",\n    \"spec_name\": \"hubspot_api_calls\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"hubspot_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "hubspot"
          ]
        },
        {
          "specName": "hubspot_api_emails",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "email_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "HubSpot owner id",
                "name": "owner_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Inbound or outbound",
                "name": "email_direction",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Email status",
                "name": "email_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Activity date",
                "name": "activity_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Associated record id",
                "name": "associated_object_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Email engagement observations for customer communication history and follow-up.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "HubSpot API emails",
              "spec_name": "hubspot_api_emails"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "hubspot_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"email_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"HubSpot owner id\",\n      \"name\": \"owner_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Inbound or outbound\",\n      \"name\": \"email_direction\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Email status\",\n      \"name\": \"email_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Activity date\",\n      \"name\": \"activity_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Associated record id\",\n      \"name\": \"associated_object_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Email engagement observations for customer communication history and follow-up.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"HubSpot API emails\",\n    \"spec_name\": \"hubspot_api_emails\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"hubspot_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "hubspot"
          ]
        },
        {
          "specName": "hubspot_api_meetings",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "meeting_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "HubSpot owner id",
                "name": "owner_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Meeting title",
                "name": "meeting_title",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Start datetime",
                "name": "start_datetime",
                "tests": [],
                "type": "string"
              },
              {
                "description": "End datetime",
                "name": "end_datetime",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Meeting outcome",
                "name": "outcome",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Meeting engagement observations for scheduled or logged meetings and associations.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "HubSpot API meetings",
              "spec_name": "hubspot_api_meetings"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "hubspot_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"meeting_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"HubSpot owner id\",\n      \"name\": \"owner_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Meeting title\",\n      \"name\": \"meeting_title\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Start datetime\",\n      \"name\": \"start_datetime\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"End datetime\",\n      \"name\": \"end_datetime\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Meeting outcome\",\n      \"name\": \"outcome\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Meeting engagement observations for scheduled or logged meetings and associations.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"HubSpot API meetings\",\n    \"spec_name\": \"hubspot_api_meetings\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"hubspot_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "hubspot"
          ]
        },
        {
          "specName": "hubspot_api_notes",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "note_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "HubSpot owner id",
                "name": "owner_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Activity date",
                "name": "activity_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Associated record id",
                "name": "associated_object_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Short note summary",
                "name": "note_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Note engagement observations for CRM context, handoff notes, and agent review evidence.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "HubSpot API notes",
              "spec_name": "hubspot_api_notes"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "hubspot_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"note_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"HubSpot owner id\",\n      \"name\": \"owner_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Activity date\",\n      \"name\": \"activity_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Associated record id\",\n      \"name\": \"associated_object_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Short note summary\",\n      \"name\": \"note_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Note engagement observations for CRM context, handoff notes, and agent review evidence.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"HubSpot API notes\",\n    \"spec_name\": \"hubspot_api_notes\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"hubspot_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "hubspot"
          ]
        },
        {
          "specName": "hubspot_api_tasks",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "task_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "HubSpot owner id",
                "name": "owner_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Task subject",
                "name": "task_subject",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Task status",
                "name": "task_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Priority",
                "name": "priority",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Due date",
                "name": "due_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Associated record id",
                "name": "associated_object_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Task engagement observations for follow-up work, completion, priority, and owner routing.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "HubSpot API tasks",
              "spec_name": "hubspot_api_tasks"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "hubspot_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"task_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"HubSpot owner id\",\n      \"name\": \"owner_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Task subject\",\n      \"name\": \"task_subject\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Task status\",\n      \"name\": \"task_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Priority\",\n      \"name\": \"priority\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Due date\",\n      \"name\": \"due_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Associated record id\",\n      \"name\": \"associated_object_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Task engagement observations for follow-up work, completion, priority, and owner routing.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"HubSpot API tasks\",\n    \"spec_name\": \"hubspot_api_tasks\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"hubspot_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "hubspot"
          ]
        },
        {
          "specName": "hubspot_api_custom_objects",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "custom_object_record_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Object type id",
                "name": "object_type_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Record name",
                "name": "record_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "HubSpot owner id",
                "name": "owner_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Primary associated object id",
                "name": "primary_association_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Custom object observations for account-specific HubSpot records and modeled business entities.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "HubSpot API custom objects",
              "spec_name": "hubspot_api_custom_objects"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "hubspot_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"custom_object_record_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Object type id\",\n      \"name\": \"object_type_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Record name\",\n      \"name\": \"record_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"HubSpot owner id\",\n      \"name\": \"owner_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Primary associated object id\",\n      \"name\": \"primary_association_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Custom object observations for account-specific HubSpot records and modeled business entities.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"HubSpot API custom objects\",\n    \"spec_name\": \"hubspot_api_custom_objects\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"hubspot_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "hubspot"
          ]
        },
        {
          "specName": "hubspot_api_property_definitions",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "property_definition_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Object type",
                "name": "object_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Property name",
                "name": "property_name",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Field type",
                "name": "field_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Property type",
                "name": "property_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Calculated property flag",
                "name": "is_calculated",
                "tests": [],
                "type": "boolean"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Property definition observations for object schema discovery and field promotion decisions.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "HubSpot API property definitions",
              "spec_name": "hubspot_api_property_definitions"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "hubspot_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"property_definition_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Object type\",\n      \"name\": \"object_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Property name\",\n      \"name\": \"property_name\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Field type\",\n      \"name\": \"field_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Property type\",\n      \"name\": \"property_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Calculated property flag\",\n      \"name\": \"is_calculated\",\n      \"tests\": [],\n      \"type\": \"boolean\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Property definition observations for object schema discovery and field promotion decisions.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"HubSpot API property definitions\",\n    \"spec_name\": \"hubspot_api_property_definitions\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"hubspot_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "hubspot"
          ]
        },
        {
          "specName": "hubspot_api_webhook_events",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "webhook_event_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Subscription type",
                "name": "subscription_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Object id",
                "name": "object_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Object type",
                "name": "object_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Event type",
                "name": "event_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Occurred timestamp",
                "name": "occurred_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Webhook event observations for CRM sync replay, dedupe, and downstream refresh decisions.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "HubSpot API webhook events",
              "spec_name": "hubspot_api_webhook_events"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "hubspot_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"webhook_event_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Subscription type\",\n      \"name\": \"subscription_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Object id\",\n      \"name\": \"object_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Object type\",\n      \"name\": \"object_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Event type\",\n      \"name\": \"event_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Occurred timestamp\",\n      \"name\": \"occurred_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Webhook event observations for CRM sync replay, dedupe, and downstream refresh decisions.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"HubSpot API webhook events\",\n    \"spec_name\": \"hubspot_api_webhook_events\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"hubspot_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "hubspot"
          ]
        },
        {
          "specName": "hubspot_agent_api_company_updates",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "company_update_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "company_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Field name",
                "name": "field_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Current value",
                "name": "current_value",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Proposed value",
                "name": "proposed_value",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed company update proposals before outbound HubSpot sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "HubSpot agent API company updates",
              "spec_name": "hubspot_agent_api_company_updates",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "hubspot_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"company_update_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"company_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Field name\",\n      \"name\": \"field_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Current value\",\n      \"name\": \"current_value\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Proposed value\",\n      \"name\": \"proposed_value\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed company update proposals before outbound HubSpot sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"HubSpot agent API company updates\",\n    \"spec_name\": \"hubspot_agent_api_company_updates\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"hubspot_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "hubspot"
          ]
        },
        {
          "specName": "hubspot_agent_api_contact_updates",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "contact_update_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "contact_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Field name",
                "name": "field_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Current value",
                "name": "current_value",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Proposed value",
                "name": "proposed_value",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed contact update proposals before outbound HubSpot sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "HubSpot agent API contact updates",
              "spec_name": "hubspot_agent_api_contact_updates",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "hubspot_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"contact_update_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"contact_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Field name\",\n      \"name\": \"field_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Current value\",\n      \"name\": \"current_value\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Proposed value\",\n      \"name\": \"proposed_value\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed contact update proposals before outbound HubSpot sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"HubSpot agent API contact updates\",\n    \"spec_name\": \"hubspot_agent_api_contact_updates\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"hubspot_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "hubspot"
          ]
        },
        {
          "specName": "hubspot_agent_api_deal_updates",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "deal_update_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "deal_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Current deal stage",
                "name": "current_stage",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Proposed deal stage",
                "name": "proposed_stage",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Current amount",
                "name": "current_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Proposed amount",
                "name": "proposed_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Proposed close date",
                "name": "proposed_close_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed deal update proposals before outbound HubSpot sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "HubSpot agent API deal updates",
              "spec_name": "hubspot_agent_api_deal_updates",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "hubspot_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"deal_update_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"deal_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Current deal stage\",\n      \"name\": \"current_stage\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Proposed deal stage\",\n      \"name\": \"proposed_stage\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Current amount\",\n      \"name\": \"current_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Proposed amount\",\n      \"name\": \"proposed_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Proposed close date\",\n      \"name\": \"proposed_close_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed deal update proposals before outbound HubSpot sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"HubSpot agent API deal updates\",\n    \"spec_name\": \"hubspot_agent_api_deal_updates\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"hubspot_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "hubspot"
          ]
        },
        {
          "specName": "hubspot_agent_api_ticket_updates",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "ticket_update_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "ticket_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Current ticket stage",
                "name": "current_stage",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Proposed ticket stage",
                "name": "proposed_stage",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Current owner id",
                "name": "current_owner_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Proposed owner id",
                "name": "proposed_owner_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Proposed priority",
                "name": "proposed_priority",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed ticket update proposals before outbound HubSpot sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "HubSpot agent API ticket updates",
              "spec_name": "hubspot_agent_api_ticket_updates",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "hubspot_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"ticket_update_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"ticket_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Current ticket stage\",\n      \"name\": \"current_stage\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Proposed ticket stage\",\n      \"name\": \"proposed_stage\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Current owner id\",\n      \"name\": \"current_owner_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Proposed owner id\",\n      \"name\": \"proposed_owner_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Proposed priority\",\n      \"name\": \"proposed_priority\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed ticket update proposals before outbound HubSpot sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"HubSpot agent API ticket updates\",\n    \"spec_name\": \"hubspot_agent_api_ticket_updates\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"hubspot_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "hubspot"
          ]
        },
        {
          "specName": "hubspot_agent_api_association_updates",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "association_update_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "association_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "From object type",
                "name": "from_object_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "From object id",
                "name": "from_object_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "To object type",
                "name": "to_object_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "To object id",
                "name": "to_object_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Proposed association label",
                "name": "proposed_label",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed association create/update proposals before outbound HubSpot sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "HubSpot agent API association updates",
              "spec_name": "hubspot_agent_api_association_updates",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "hubspot_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"association_update_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"association_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"From object type\",\n      \"name\": \"from_object_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"From object id\",\n      \"name\": \"from_object_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"To object type\",\n      \"name\": \"to_object_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"To object id\",\n      \"name\": \"to_object_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Proposed association label\",\n      \"name\": \"proposed_label\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed association create/update proposals before outbound HubSpot sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"HubSpot agent API association updates\",\n    \"spec_name\": \"hubspot_agent_api_association_updates\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"hubspot_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "hubspot"
          ]
        }
      ]
    },
    {
      "id": "jira_project_management_library",
      "type": "collection",
      "domains": [
        "project_management",
        "operations"
      ],
      "systems": [
        "jira"
      ],
      "version": "1.0.0",
      "summary": "Jira project management specs for projects, issues, fields, issue types, statuses, workflows, comments, attachments, worklogs, links, versions, components, users, boards, sprints, epics, webhook events, and governed issue updates.",
      "coverageStatus": "Core",
      "coverageNotes": "Covers common Jira Cloud and Jira Software records for issue tracking and agile planning. It does not mirror every Jira admin object, permission scheme, screen scheme, automation rule, or Marketplace app extension.",
      "sourceDocs": [
        {
          "label": "Jira Cloud platform REST API",
          "url": "https://developer.atlassian.com/cloud/jira/platform/rest/"
        },
        {
          "label": "Jira Cloud issues API",
          "url": "https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-issues/"
        },
        {
          "label": "Jira Software Cloud REST API",
          "url": "https://developer.atlassian.com/cloud/jira/software/rest/"
        }
      ],
      "nextObjects": [
        "filters",
        "dashboards",
        "permission_schemes",
        "screens",
        "automation_rules",
        "service_management_requests",
        "assets",
        "deployments",
        "development_information"
      ],
      "omittedObjects": [
        "OAuth/token management",
        "raw user emails",
        "complete admin permission metadata",
        "Marketplace app-specific fields",
        "legacy Server/Data Center-only endpoints"
      ],
      "needs": [
        "A Jira agent/operator role. The generated calls use jira_agent."
      ],
      "usefulFor": [
        "Issue tracking memory",
        "Agent-raised work items",
        "Project delivery reporting",
        "Sprint and release planning",
        "Governed issue creation, transition, and comment updates"
      ],
      "extendWith": [
        "Links from ops_issues into Jira issue creation proposals",
        "Links from Salesforce/HubSpot tickets into Jira issues",
        "Links from commits/deployments into issue observations when development data is available"
      ],
      "searchTerms": [
        "jira",
        "atlassian",
        "issues",
        "work items",
        "bugs",
        "tasks",
        "stories",
        "projects",
        "boards",
        "sprints",
        "epics",
        "comments",
        "worklogs",
        "issue transitions"
      ],
      "links": [
        {
          "from": "jira_agent_api_issue_create_proposals",
          "to": "jira_api_projects",
          "kind": "source_link",
          "description": "Issue creation proposals cite the target project observation."
        },
        {
          "from": "jira_agent_api_issue_updates",
          "to": "jira_api_issues",
          "kind": "source_link",
          "description": "Issue update proposals cite the current issue observation."
        },
        {
          "from": "jira_agent_api_issue_transitions",
          "to": "jira_api_issues",
          "kind": "source_link",
          "description": "Issue transition proposals cite the current issue observation."
        },
        {
          "from": "jira_agent_api_issue_transitions",
          "to": "jira_api_workflows",
          "kind": "source_link",
          "description": "Issue transition proposals can cite workflow observations for allowed status movement."
        },
        {
          "from": "jira_agent_api_comment_updates",
          "to": "jira_api_issues",
          "kind": "source_link",
          "description": "Comment proposals cite the issue they are intended to update."
        }
      ],
      "installedSpecs": [
        {
          "id": "jira_api_projects",
          "domain": "Observation",
          "purpose": "Project observations.",
          "systems": [
            "jira"
          ]
        },
        {
          "id": "jira_api_issues",
          "domain": "Observation",
          "purpose": "Issue/work item observations.",
          "systems": [
            "jira"
          ]
        },
        {
          "id": "jira_api_issue_fields",
          "domain": "Observation",
          "purpose": "Issue field schema observations.",
          "systems": [
            "jira"
          ]
        },
        {
          "id": "jira_api_issue_types",
          "domain": "Observation",
          "purpose": "Issue type observations.",
          "systems": [
            "jira"
          ]
        },
        {
          "id": "jira_api_statuses",
          "domain": "Observation",
          "purpose": "Status observations.",
          "systems": [
            "jira"
          ]
        },
        {
          "id": "jira_api_workflows",
          "domain": "Observation",
          "purpose": "Workflow observations.",
          "systems": [
            "jira"
          ]
        },
        {
          "id": "jira_api_issue_comments",
          "domain": "Observation",
          "purpose": "Issue comment observations.",
          "systems": [
            "jira"
          ]
        },
        {
          "id": "jira_api_issue_attachments",
          "domain": "Observation",
          "purpose": "Issue attachment observations.",
          "systems": [
            "jira"
          ]
        },
        {
          "id": "jira_api_issue_worklogs",
          "domain": "Observation",
          "purpose": "Issue worklog observations.",
          "systems": [
            "jira"
          ]
        },
        {
          "id": "jira_api_issue_links",
          "domain": "Observation",
          "purpose": "Issue relationship observations.",
          "systems": [
            "jira"
          ]
        },
        {
          "id": "jira_api_versions",
          "domain": "Observation",
          "purpose": "Version and release observations.",
          "systems": [
            "jira"
          ]
        },
        {
          "id": "jira_api_components",
          "domain": "Observation",
          "purpose": "Component observations.",
          "systems": [
            "jira"
          ]
        },
        {
          "id": "jira_api_users",
          "domain": "Observation",
          "purpose": "User and assignment observations.",
          "systems": [
            "jira"
          ]
        },
        {
          "id": "jira_software_api_boards",
          "domain": "Observation",
          "purpose": "Board observations.",
          "systems": [
            "jira"
          ]
        },
        {
          "id": "jira_software_api_sprints",
          "domain": "Observation",
          "purpose": "Sprint observations.",
          "systems": [
            "jira"
          ]
        },
        {
          "id": "jira_software_api_epics",
          "domain": "Observation",
          "purpose": "Epic observations.",
          "systems": [
            "jira"
          ]
        },
        {
          "id": "jira_api_webhook_events",
          "domain": "Observation",
          "purpose": "Jira webhook event observations.",
          "systems": [
            "jira"
          ]
        },
        {
          "id": "jira_agent_api_issue_create_proposals",
          "domain": "Commitment workflow",
          "purpose": "Governed issue creation proposals.",
          "systems": [
            "jira"
          ]
        },
        {
          "id": "jira_agent_api_issue_updates",
          "domain": "Commitment workflow",
          "purpose": "Governed issue updates.",
          "systems": [
            "jira"
          ]
        },
        {
          "id": "jira_agent_api_issue_transitions",
          "domain": "Commitment workflow",
          "purpose": "Governed issue transitions.",
          "systems": [
            "jira"
          ]
        },
        {
          "id": "jira_agent_api_comment_updates",
          "domain": "Commitment workflow",
          "purpose": "Governed comment updates.",
          "systems": [
            "jira"
          ]
        }
      ],
      "createSpecPayloads": [
        {
          "specName": "jira_api_projects",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "project_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Project key",
                "name": "project_key",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Project name",
                "name": "project_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Project type key",
                "name": "project_type_key",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Project lead account id",
                "name": "lead_account_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Archived flag",
                "name": "archived",
                "tests": [],
                "type": "boolean"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Project observations for keys, names, project types, leads, and issue organization.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Jira API projects",
              "spec_name": "jira_api_projects"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "jira_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"project_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Project key\",\n      \"name\": \"project_key\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Project name\",\n      \"name\": \"project_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Project type key\",\n      \"name\": \"project_type_key\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Project lead account id\",\n      \"name\": \"lead_account_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Archived flag\",\n      \"name\": \"archived\",\n      \"tests\": [],\n      \"type\": \"boolean\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Project observations for keys, names, project types, leads, and issue organization.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Jira API projects\",\n    \"spec_name\": \"jira_api_projects\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"jira_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "jira"
          ]
        },
        {
          "specName": "jira_api_issues",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "issue_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Issue key",
                "name": "issue_key",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "Project key",
                "name": "project_key",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Issue type",
                "name": "issue_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Issue summary",
                "name": "summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Issue status",
                "name": "status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Priority",
                "name": "priority",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Assignee account id",
                "name": "assignee_account_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Reporter account id",
                "name": "reporter_account_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Issue observations for work items, bugs, tasks, stories, status, priority, assignee, reporter, and project context.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Jira API issues",
              "spec_name": "jira_api_issues"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "jira_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"issue_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Issue key\",\n      \"name\": \"issue_key\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Project key\",\n      \"name\": \"project_key\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Issue type\",\n      \"name\": \"issue_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Issue summary\",\n      \"name\": \"summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Issue status\",\n      \"name\": \"status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Priority\",\n      \"name\": \"priority\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Assignee account id\",\n      \"name\": \"assignee_account_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Reporter account id\",\n      \"name\": \"reporter_account_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Issue observations for work items, bugs, tasks, stories, status, priority, assignee, reporter, and project context.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Jira API issues\",\n    \"spec_name\": \"jira_api_issues\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"jira_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "jira"
          ]
        },
        {
          "specName": "jira_api_issue_fields",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "issue_field_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Field id",
                "name": "field_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Field name",
                "name": "field_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Field type",
                "name": "field_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Schema type",
                "name": "schema_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Custom field flag",
                "name": "custom",
                "tests": [],
                "type": "boolean"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Issue field observations for tenant-specific field configuration and custom field discovery.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Jira API issue fields",
              "spec_name": "jira_api_issue_fields"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "jira_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"issue_field_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Field id\",\n      \"name\": \"field_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Field name\",\n      \"name\": \"field_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Field type\",\n      \"name\": \"field_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Schema type\",\n      \"name\": \"schema_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Custom field flag\",\n      \"name\": \"custom\",\n      \"tests\": [],\n      \"type\": \"boolean\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Issue field observations for tenant-specific field configuration and custom field discovery.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Jira API issue fields\",\n    \"spec_name\": \"jira_api_issue_fields\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"jira_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "jira"
          ]
        },
        {
          "specName": "jira_api_issue_types",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "issue_type_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Issue type name",
                "name": "issue_type_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Issue type description",
                "name": "description",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Subtask flag",
                "name": "subtask",
                "tests": [],
                "type": "boolean"
              },
              {
                "description": "Hierarchy level",
                "name": "hierarchy_level",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Issue type observations for bugs, tasks, stories, epics, subtasks, and custom work types.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Jira API issue types",
              "spec_name": "jira_api_issue_types"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "jira_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"issue_type_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Issue type name\",\n      \"name\": \"issue_type_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Issue type description\",\n      \"name\": \"description\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Subtask flag\",\n      \"name\": \"subtask\",\n      \"tests\": [],\n      \"type\": \"boolean\"\n    },\n    {\n      \"description\": \"Hierarchy level\",\n      \"name\": \"hierarchy_level\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Issue type observations for bugs, tasks, stories, epics, subtasks, and custom work types.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Jira API issue types\",\n    \"spec_name\": \"jira_api_issue_types\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"jira_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "jira"
          ]
        },
        {
          "specName": "jira_api_statuses",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "status_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Status name",
                "name": "status_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Status category",
                "name": "status_category",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Status description",
                "name": "description",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Status observations for workflow states and status categories.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Jira API statuses",
              "spec_name": "jira_api_statuses"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "jira_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"status_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Status name\",\n      \"name\": \"status_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Status category\",\n      \"name\": \"status_category\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Status description\",\n      \"name\": \"description\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Status observations for workflow states and status categories.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Jira API statuses\",\n    \"spec_name\": \"jira_api_statuses\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"jira_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "jira"
          ]
        },
        {
          "specName": "jira_api_workflows",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "workflow_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Workflow name",
                "name": "workflow_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Workflow description",
                "name": "description",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Status count",
                "name": "status_count",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Transition count",
                "name": "transition_count",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Active flag",
                "name": "active",
                "tests": [],
                "type": "boolean"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Workflow observations for transition structure, statuses, and project/issue-type governance.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Jira API workflows",
              "spec_name": "jira_api_workflows"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "jira_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"workflow_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Workflow name\",\n      \"name\": \"workflow_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Workflow description\",\n      \"name\": \"description\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Status count\",\n      \"name\": \"status_count\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Transition count\",\n      \"name\": \"transition_count\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Active flag\",\n      \"name\": \"active\",\n      \"tests\": [],\n      \"type\": \"boolean\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Workflow observations for transition structure, statuses, and project/issue-type governance.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Jira API workflows\",\n    \"spec_name\": \"jira_api_workflows\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"jira_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "jira"
          ]
        },
        {
          "specName": "jira_api_issue_comments",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "comment_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Issue key",
                "name": "issue_key",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Author account id",
                "name": "author_account_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Created timestamp",
                "name": "created_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Updated timestamp",
                "name": "updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Short comment summary",
                "name": "body_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Issue comment observations for discussion history, review evidence, and support handoff.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Jira API issue comments",
              "spec_name": "jira_api_issue_comments"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "jira_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"comment_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Issue key\",\n      \"name\": \"issue_key\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Author account id\",\n      \"name\": \"author_account_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Created timestamp\",\n      \"name\": \"created_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Updated timestamp\",\n      \"name\": \"updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Short comment summary\",\n      \"name\": \"body_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Issue comment observations for discussion history, review evidence, and support handoff.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Jira API issue comments\",\n    \"spec_name\": \"jira_api_issue_comments\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"jira_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "jira"
          ]
        },
        {
          "specName": "jira_api_issue_attachments",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "attachment_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Issue key",
                "name": "issue_key",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Filename",
                "name": "filename",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Content type",
                "name": "content_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "File size in bytes",
                "name": "size_bytes",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Author account id",
                "name": "author_account_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Issue attachment observations for files linked to work items and evidence review.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Jira API issue attachments",
              "spec_name": "jira_api_issue_attachments"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "jira_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"attachment_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Issue key\",\n      \"name\": \"issue_key\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Filename\",\n      \"name\": \"filename\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Content type\",\n      \"name\": \"content_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"File size in bytes\",\n      \"name\": \"size_bytes\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Author account id\",\n      \"name\": \"author_account_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Issue attachment observations for files linked to work items and evidence review.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Jira API issue attachments\",\n    \"spec_name\": \"jira_api_issue_attachments\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"jira_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "jira"
          ]
        },
        {
          "specName": "jira_api_issue_worklogs",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "worklog_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Issue key",
                "name": "issue_key",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Author account id",
                "name": "author_account_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Work started timestamp",
                "name": "started_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Time spent in seconds",
                "name": "time_spent_seconds",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Worklog observations for time spent on issues and project delivery reporting.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Jira API issue worklogs",
              "spec_name": "jira_api_issue_worklogs"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "jira_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"worklog_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Issue key\",\n      \"name\": \"issue_key\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Author account id\",\n      \"name\": \"author_account_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Work started timestamp\",\n      \"name\": \"started_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Time spent in seconds\",\n      \"name\": \"time_spent_seconds\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Worklog observations for time spent on issues and project delivery reporting.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Jira API issue worklogs\",\n    \"spec_name\": \"jira_api_issue_worklogs\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"jira_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "jira"
          ]
        },
        {
          "specName": "jira_api_issue_links",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "issue_link_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Source issue key",
                "name": "source_issue_key",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Target issue key",
                "name": "target_issue_key",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Link type",
                "name": "link_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Link direction",
                "name": "direction",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Issue link observations for blockers, duplicates, parent/child context, and related work.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Jira API issue links",
              "spec_name": "jira_api_issue_links"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "jira_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"issue_link_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Source issue key\",\n      \"name\": \"source_issue_key\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Target issue key\",\n      \"name\": \"target_issue_key\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Link type\",\n      \"name\": \"link_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Link direction\",\n      \"name\": \"direction\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Issue link observations for blockers, duplicates, parent/child context, and related work.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Jira API issue links\",\n    \"spec_name\": \"jira_api_issue_links\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"jira_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "jira"
          ]
        },
        {
          "specName": "jira_api_versions",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "version_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Project key",
                "name": "project_key",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Version name",
                "name": "version_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Released flag",
                "name": "released",
                "tests": [],
                "type": "boolean"
              },
              {
                "description": "Release date",
                "name": "release_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Archived flag",
                "name": "archived",
                "tests": [],
                "type": "boolean"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Project version observations for releases, fix versions, and release planning.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Jira API versions",
              "spec_name": "jira_api_versions"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "jira_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"version_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Project key\",\n      \"name\": \"project_key\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Version name\",\n      \"name\": \"version_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Released flag\",\n      \"name\": \"released\",\n      \"tests\": [],\n      \"type\": \"boolean\"\n    },\n    {\n      \"description\": \"Release date\",\n      \"name\": \"release_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Archived flag\",\n      \"name\": \"archived\",\n      \"tests\": [],\n      \"type\": \"boolean\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Project version observations for releases, fix versions, and release planning.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Jira API versions\",\n    \"spec_name\": \"jira_api_versions\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"jira_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "jira"
          ]
        },
        {
          "specName": "jira_api_components",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "component_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Project key",
                "name": "project_key",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Component name",
                "name": "component_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Component lead account id",
                "name": "lead_account_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Assignee type",
                "name": "assignee_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Project component observations for ownership, subsystem routing, and issue classification.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Jira API components",
              "spec_name": "jira_api_components"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "jira_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"component_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Project key\",\n      \"name\": \"project_key\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Component name\",\n      \"name\": \"component_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Component lead account id\",\n      \"name\": \"lead_account_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Assignee type\",\n      \"name\": \"assignee_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Project component observations for ownership, subsystem routing, and issue classification.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Jira API components\",\n    \"spec_name\": \"jira_api_components\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"jira_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "jira"
          ]
        },
        {
          "specName": "jira_api_users",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "account_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed or tokenized display name",
                "name": "display_name_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed or tokenized email reference",
                "name": "email_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Account type",
                "name": "account_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Active flag",
                "name": "active",
                "tests": [],
                "type": "boolean"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "User observations for assignment, reporting, ownership, and audit context.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Jira API users",
              "spec_name": "jira_api_users"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "jira_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"account_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed or tokenized display name\",\n      \"name\": \"display_name_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed or tokenized email reference\",\n      \"name\": \"email_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Account type\",\n      \"name\": \"account_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Active flag\",\n      \"name\": \"active\",\n      \"tests\": [],\n      \"type\": \"boolean\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"User observations for assignment, reporting, ownership, and audit context.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Jira API users\",\n    \"spec_name\": \"jira_api_users\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"jira_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "jira"
          ]
        },
        {
          "specName": "jira_software_api_boards",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "board_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Board name",
                "name": "board_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Board type",
                "name": "board_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Project key",
                "name": "project_key",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Board filter id",
                "name": "filter_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Board observations for Scrum/Kanban planning, project filters, and work visibility.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Jira Software API boards",
              "spec_name": "jira_software_api_boards"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "jira_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"board_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Board name\",\n      \"name\": \"board_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Board type\",\n      \"name\": \"board_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Project key\",\n      \"name\": \"project_key\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Board filter id\",\n      \"name\": \"filter_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Board observations for Scrum/Kanban planning, project filters, and work visibility.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Jira Software API boards\",\n    \"spec_name\": \"jira_software_api_boards\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"jira_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "jira"
          ]
        },
        {
          "specName": "jira_software_api_sprints",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "sprint_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Board id",
                "name": "board_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Sprint name",
                "name": "sprint_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Sprint state",
                "name": "sprint_state",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Start date",
                "name": "start_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "End date",
                "name": "end_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Sprint goal",
                "name": "goal",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Sprint observations for agile iteration planning, state, goal, and board context.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Jira Software API sprints",
              "spec_name": "jira_software_api_sprints"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "jira_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"sprint_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Board id\",\n      \"name\": \"board_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Sprint name\",\n      \"name\": \"sprint_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Sprint state\",\n      \"name\": \"sprint_state\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Start date\",\n      \"name\": \"start_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"End date\",\n      \"name\": \"end_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Sprint goal\",\n      \"name\": \"goal\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Sprint observations for agile iteration planning, state, goal, and board context.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Jira Software API sprints\",\n    \"spec_name\": \"jira_software_api_sprints\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"jira_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "jira"
          ]
        },
        {
          "specName": "jira_software_api_epics",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "epic_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Epic issue key",
                "name": "epic_key",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Project key",
                "name": "project_key",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Epic name",
                "name": "epic_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Epic status",
                "name": "status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Owner account id",
                "name": "owner_account_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Epic observations for larger bodies of work and issue grouping.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Jira Software API epics",
              "spec_name": "jira_software_api_epics"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "jira_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"epic_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Epic issue key\",\n      \"name\": \"epic_key\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Project key\",\n      \"name\": \"project_key\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Epic name\",\n      \"name\": \"epic_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Epic status\",\n      \"name\": \"status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Owner account id\",\n      \"name\": \"owner_account_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Epic observations for larger bodies of work and issue grouping.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Jira Software API epics\",\n    \"spec_name\": \"jira_software_api_epics\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"jira_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "jira"
          ]
        },
        {
          "specName": "jira_api_webhook_events",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "webhook_event_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Event type",
                "name": "event_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Issue key",
                "name": "issue_key",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Project key",
                "name": "project_key",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Occurred timestamp",
                "name": "occurred_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Actor account id",
                "name": "actor_account_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Webhook event observations for issue/project change replay and downstream refresh decisions.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Jira API webhook events",
              "spec_name": "jira_api_webhook_events"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "jira_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"webhook_event_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Event type\",\n      \"name\": \"event_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Issue key\",\n      \"name\": \"issue_key\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Project key\",\n      \"name\": \"project_key\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Occurred timestamp\",\n      \"name\": \"occurred_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Actor account id\",\n      \"name\": \"actor_account_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Webhook event observations for issue/project change replay and downstream refresh decisions.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Jira API webhook events\",\n    \"spec_name\": \"jira_api_webhook_events\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"jira_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "jira"
          ]
        },
        {
          "specName": "jira_agent_api_issue_create_proposals",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "issue_create_proposal_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "project_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Project key",
                "name": "project_key",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Issue type",
                "name": "issue_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Issue summary",
                "name": "summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Proposed priority",
                "name": "proposed_priority",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Proposed assignee account id",
                "name": "proposed_assignee_account_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed issue creation proposals before outbound Jira sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Jira agent API issue create proposals",
              "spec_name": "jira_agent_api_issue_create_proposals",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "jira_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"issue_create_proposal_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"project_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Project key\",\n      \"name\": \"project_key\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Issue type\",\n      \"name\": \"issue_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Issue summary\",\n      \"name\": \"summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Proposed priority\",\n      \"name\": \"proposed_priority\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Proposed assignee account id\",\n      \"name\": \"proposed_assignee_account_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed issue creation proposals before outbound Jira sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Jira agent API issue create proposals\",\n    \"spec_name\": \"jira_agent_api_issue_create_proposals\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"jira_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "jira"
          ]
        },
        {
          "specName": "jira_agent_api_issue_updates",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "issue_update_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "issue_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Issue key",
                "name": "issue_key",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Field name",
                "name": "field_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Current value",
                "name": "current_value",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Proposed value",
                "name": "proposed_value",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed issue update proposals before outbound Jira sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Jira agent API issue updates",
              "spec_name": "jira_agent_api_issue_updates",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "jira_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"issue_update_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"issue_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Issue key\",\n      \"name\": \"issue_key\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Field name\",\n      \"name\": \"field_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Current value\",\n      \"name\": \"current_value\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Proposed value\",\n      \"name\": \"proposed_value\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed issue update proposals before outbound Jira sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Jira agent API issue updates\",\n    \"spec_name\": \"jira_agent_api_issue_updates\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"jira_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "jira"
          ]
        },
        {
          "specName": "jira_agent_api_issue_transitions",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "issue_transition_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "issue_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Issue key",
                "name": "issue_key",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Current status",
                "name": "current_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Proposed status",
                "name": "proposed_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Jira transition id",
                "name": "transition_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed issue transition proposals before outbound Jira sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Jira agent API issue transitions",
              "spec_name": "jira_agent_api_issue_transitions",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "jira_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"issue_transition_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"issue_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Issue key\",\n      \"name\": \"issue_key\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Current status\",\n      \"name\": \"current_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Proposed status\",\n      \"name\": \"proposed_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Jira transition id\",\n      \"name\": \"transition_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed issue transition proposals before outbound Jira sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Jira agent API issue transitions\",\n    \"spec_name\": \"jira_agent_api_issue_transitions\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"jira_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "jira"
          ]
        },
        {
          "specName": "jira_agent_api_comment_updates",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "comment_update_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "issue_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Issue key",
                "name": "issue_key",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Comment summary",
                "name": "comment_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Visibility scope",
                "name": "visibility_scope",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed comment creation/update proposals before outbound Jira sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Jira agent API comment updates",
              "spec_name": "jira_agent_api_comment_updates",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "jira_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"comment_update_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"issue_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Issue key\",\n      \"name\": \"issue_key\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Comment summary\",\n      \"name\": \"comment_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Visibility scope\",\n      \"name\": \"visibility_scope\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed comment creation/update proposals before outbound Jira sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Jira agent API comment updates\",\n    \"spec_name\": \"jira_agent_api_comment_updates\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"jira_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "jira"
          ]
        }
      ]
    },
    {
      "id": "linear_project_management_library",
      "type": "collection",
      "domains": [
        "project_management",
        "operations"
      ],
      "systems": [
        "linear"
      ],
      "version": "1.0.0",
      "summary": "Linear project management specs for organizations, teams, users, workflow states, issues, comments, attachments, labels, projects, project updates, milestones, cycles, initiatives, documents, customers, customer requests, webhook events, and governed work updates.",
      "coverageStatus": "Core",
      "coverageNotes": "Covers the core Linear GraphQL objects agents usually need for product and engineering work memory. It does not mirror the full GraphQL schema, every admin setting, or every integration-specific payload.",
      "sourceDocs": [
        {
          "label": "Linear developers",
          "url": "https://linear.app/docs/api"
        },
        {
          "label": "Linear GraphQL API",
          "url": "https://linear.app/developers/graphql?noRedirect=1"
        },
        {
          "label": "Linear webhooks",
          "url": "https://linear.app/developers/webhooks"
        }
      ],
      "nextObjects": [
        "roadmaps",
        "views",
        "integrations",
        "triage_responsibilities",
        "relations",
        "reactions",
        "sla_statuses",
        "github_pull_requests"
      ],
      "omittedObjects": [
        "OAuth/token management",
        "raw user emails",
        "complete admin settings",
        "full GraphQL schema introspection output",
        "integration-specific private payloads"
      ],
      "needs": [
        "A Linear agent/operator role. The generated calls use linear_agent."
      ],
      "usefulFor": [
        "Product and engineering work memory",
        "Agent-raised issues",
        "Project and cycle reporting",
        "Customer-request follow-up",
        "Governed issue/project/comment updates"
      ],
      "extendWith": [
        "Links from ops_issues into Linear issue creation proposals",
        "Links from Salesforce/HubSpot tickets into Linear issues",
        "Links from GitHub pull requests into Linear issue observations"
      ],
      "searchTerms": [
        "linear",
        "issues",
        "projects",
        "teams",
        "cycles",
        "initiatives",
        "comments",
        "labels",
        "documents",
        "customer requests",
        "product management",
        "engineering work"
      ],
      "links": [
        {
          "from": "linear_agent_api_issue_create_proposals",
          "to": "linear_api_teams",
          "kind": "source_link",
          "description": "Issue creation proposals cite the target team observation."
        },
        {
          "from": "linear_agent_api_issue_updates",
          "to": "linear_api_issues",
          "kind": "source_link",
          "description": "Issue update proposals cite the current issue observation."
        },
        {
          "from": "linear_agent_api_project_updates",
          "to": "linear_api_projects",
          "kind": "source_link",
          "description": "Project update proposals cite the current project observation."
        },
        {
          "from": "linear_agent_api_comment_updates",
          "to": "linear_api_issues",
          "kind": "source_link",
          "description": "Comment proposals cite the issue they are intended to update."
        }
      ],
      "installedSpecs": [
        {
          "id": "linear_api_organizations",
          "domain": "Observation",
          "purpose": "Workspace organization observations.",
          "systems": [
            "linear"
          ]
        },
        {
          "id": "linear_api_teams",
          "domain": "Observation",
          "purpose": "Team observations.",
          "systems": [
            "linear"
          ]
        },
        {
          "id": "linear_api_users",
          "domain": "Observation",
          "purpose": "User and assignment observations.",
          "systems": [
            "linear"
          ]
        },
        {
          "id": "linear_api_workflow_states",
          "domain": "Observation",
          "purpose": "Workflow state observations.",
          "systems": [
            "linear"
          ]
        },
        {
          "id": "linear_api_issues",
          "domain": "Observation",
          "purpose": "Issue observations.",
          "systems": [
            "linear"
          ]
        },
        {
          "id": "linear_api_issue_comments",
          "domain": "Observation",
          "purpose": "Issue comment observations.",
          "systems": [
            "linear"
          ]
        },
        {
          "id": "linear_api_issue_attachments",
          "domain": "Observation",
          "purpose": "Issue attachment observations.",
          "systems": [
            "linear"
          ]
        },
        {
          "id": "linear_api_issue_labels",
          "domain": "Observation",
          "purpose": "Issue label observations.",
          "systems": [
            "linear"
          ]
        },
        {
          "id": "linear_api_projects",
          "domain": "Observation",
          "purpose": "Project observations.",
          "systems": [
            "linear"
          ]
        },
        {
          "id": "linear_api_project_updates",
          "domain": "Observation",
          "purpose": "Project update observations.",
          "systems": [
            "linear"
          ]
        },
        {
          "id": "linear_api_milestones",
          "domain": "Observation",
          "purpose": "Milestone observations.",
          "systems": [
            "linear"
          ]
        },
        {
          "id": "linear_api_cycles",
          "domain": "Observation",
          "purpose": "Cycle observations.",
          "systems": [
            "linear"
          ]
        },
        {
          "id": "linear_api_initiatives",
          "domain": "Observation",
          "purpose": "Initiative observations.",
          "systems": [
            "linear"
          ]
        },
        {
          "id": "linear_api_documents",
          "domain": "Observation",
          "purpose": "Document observations.",
          "systems": [
            "linear"
          ]
        },
        {
          "id": "linear_api_customers",
          "domain": "Observation",
          "purpose": "Customer observations.",
          "systems": [
            "linear"
          ]
        },
        {
          "id": "linear_api_customer_requests",
          "domain": "Observation",
          "purpose": "Customer request observations.",
          "systems": [
            "linear"
          ]
        },
        {
          "id": "linear_api_webhook_events",
          "domain": "Observation",
          "purpose": "Linear webhook event observations.",
          "systems": [
            "linear"
          ]
        },
        {
          "id": "linear_agent_api_issue_create_proposals",
          "domain": "Commitment workflow",
          "purpose": "Governed issue creation proposals.",
          "systems": [
            "linear"
          ]
        },
        {
          "id": "linear_agent_api_issue_updates",
          "domain": "Commitment workflow",
          "purpose": "Governed issue updates.",
          "systems": [
            "linear"
          ]
        },
        {
          "id": "linear_agent_api_project_updates",
          "domain": "Commitment workflow",
          "purpose": "Governed project updates.",
          "systems": [
            "linear"
          ]
        },
        {
          "id": "linear_agent_api_comment_updates",
          "domain": "Commitment workflow",
          "purpose": "Governed comment updates.",
          "systems": [
            "linear"
          ]
        }
      ],
      "createSpecPayloads": [
        {
          "specName": "linear_api_organizations",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "organization_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Organization name",
                "name": "organization_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Workspace URL key",
                "name": "url_key",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Created timestamp",
                "name": "created_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Organization observations for workspace identity, URL keys, and global settings.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Linear API organizations",
              "spec_name": "linear_api_organizations"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "linear_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"organization_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Organization name\",\n      \"name\": \"organization_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Workspace URL key\",\n      \"name\": \"url_key\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Created timestamp\",\n      \"name\": \"created_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Organization observations for workspace identity, URL keys, and global settings.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Linear API organizations\",\n    \"spec_name\": \"linear_api_organizations\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"linear_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "linear"
          ]
        },
        {
          "specName": "linear_api_teams",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "team_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Team name",
                "name": "team_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Team key",
                "name": "team_key",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Team description",
                "name": "description",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Cycle enabled flag",
                "name": "cycle_enabled",
                "tests": [],
                "type": "boolean"
              },
              {
                "description": "Private team flag",
                "name": "private",
                "tests": [],
                "type": "boolean"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Team observations for ownership, issue prefixes, cycles, and workflow routing.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Linear API teams",
              "spec_name": "linear_api_teams"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "linear_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"team_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Team name\",\n      \"name\": \"team_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Team key\",\n      \"name\": \"team_key\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Team description\",\n      \"name\": \"description\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Cycle enabled flag\",\n      \"name\": \"cycle_enabled\",\n      \"tests\": [],\n      \"type\": \"boolean\"\n    },\n    {\n      \"description\": \"Private team flag\",\n      \"name\": \"private\",\n      \"tests\": [],\n      \"type\": \"boolean\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Team observations for ownership, issue prefixes, cycles, and workflow routing.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Linear API teams\",\n    \"spec_name\": \"linear_api_teams\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"linear_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "linear"
          ]
        },
        {
          "specName": "linear_api_users",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "user_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed or tokenized display name",
                "name": "display_name_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed or tokenized email reference",
                "name": "email_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Active flag",
                "name": "active",
                "tests": [],
                "type": "boolean"
              },
              {
                "description": "Admin flag",
                "name": "admin",
                "tests": [],
                "type": "boolean"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "User observations for assignment, ownership, and project/team participation.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Linear API users",
              "spec_name": "linear_api_users"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "linear_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"user_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed or tokenized display name\",\n      \"name\": \"display_name_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed or tokenized email reference\",\n      \"name\": \"email_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Active flag\",\n      \"name\": \"active\",\n      \"tests\": [],\n      \"type\": \"boolean\"\n    },\n    {\n      \"description\": \"Admin flag\",\n      \"name\": \"admin\",\n      \"tests\": [],\n      \"type\": \"boolean\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"User observations for assignment, ownership, and project/team participation.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Linear API users\",\n    \"spec_name\": \"linear_api_users\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"linear_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "linear"
          ]
        },
        {
          "specName": "linear_api_workflow_states",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "workflow_state_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Team id",
                "name": "team_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "State name",
                "name": "state_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "State type",
                "name": "state_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "State position",
                "name": "position",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Workflow state observations for backlog, triage, started, completed, canceled, and team-specific status mapping.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Linear API workflow states",
              "spec_name": "linear_api_workflow_states"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "linear_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"workflow_state_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Team id\",\n      \"name\": \"team_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"State name\",\n      \"name\": \"state_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"State type\",\n      \"name\": \"state_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"State position\",\n      \"name\": \"position\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Workflow state observations for backlog, triage, started, completed, canceled, and team-specific status mapping.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Linear API workflow states\",\n    \"spec_name\": \"linear_api_workflow_states\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"linear_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "linear"
          ]
        },
        {
          "specName": "linear_api_issues",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "issue_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Linear issue identifier",
                "name": "identifier",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "Team id",
                "name": "team_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Project id",
                "name": "project_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Cycle id",
                "name": "cycle_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Workflow state id",
                "name": "state_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Priority",
                "name": "priority",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Assignee user id",
                "name": "assignee_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Issue title",
                "name": "title",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Issue observations for product/engineering work, status, priority, assignee, team, project, and cycle context.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Linear API issues",
              "spec_name": "linear_api_issues"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "linear_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"issue_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Linear issue identifier\",\n      \"name\": \"identifier\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Team id\",\n      \"name\": \"team_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Project id\",\n      \"name\": \"project_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Cycle id\",\n      \"name\": \"cycle_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Workflow state id\",\n      \"name\": \"state_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Priority\",\n      \"name\": \"priority\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Assignee user id\",\n      \"name\": \"assignee_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Issue title\",\n      \"name\": \"title\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Issue observations for product/engineering work, status, priority, assignee, team, project, and cycle context.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Linear API issues\",\n    \"spec_name\": \"linear_api_issues\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"linear_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "linear"
          ]
        },
        {
          "specName": "linear_api_issue_comments",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "comment_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Issue id",
                "name": "issue_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Author user id",
                "name": "author_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Created timestamp",
                "name": "created_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Updated timestamp",
                "name": "updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Short comment summary",
                "name": "body_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Issue comment observations for decisions, handoff context, and review evidence.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Linear API issue comments",
              "spec_name": "linear_api_issue_comments"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "linear_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"comment_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Issue id\",\n      \"name\": \"issue_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Author user id\",\n      \"name\": \"author_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Created timestamp\",\n      \"name\": \"created_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Updated timestamp\",\n      \"name\": \"updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Short comment summary\",\n      \"name\": \"body_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Issue comment observations for decisions, handoff context, and review evidence.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Linear API issue comments\",\n    \"spec_name\": \"linear_api_issue_comments\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"linear_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "linear"
          ]
        },
        {
          "specName": "linear_api_issue_attachments",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "attachment_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Issue id",
                "name": "issue_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Attachment title",
                "name": "title",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Attachment subtitle",
                "name": "subtitle",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed or tokenized URL",
                "name": "url_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Attachment source type",
                "name": "source_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Issue attachment observations for linked source material, external URLs, and evidence.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Linear API issue attachments",
              "spec_name": "linear_api_issue_attachments"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "linear_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"attachment_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Issue id\",\n      \"name\": \"issue_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Attachment title\",\n      \"name\": \"title\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Attachment subtitle\",\n      \"name\": \"subtitle\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed or tokenized URL\",\n      \"name\": \"url_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Attachment source type\",\n      \"name\": \"source_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Issue attachment observations for linked source material, external URLs, and evidence.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Linear API issue attachments\",\n    \"spec_name\": \"linear_api_issue_attachments\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"linear_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "linear"
          ]
        },
        {
          "specName": "linear_api_issue_labels",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "label_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Label name",
                "name": "label_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Team id",
                "name": "team_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Parent label id",
                "name": "parent_label_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Label color",
                "name": "color",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Issue label observations for routing, topic classification, and triage.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Linear API issue labels",
              "spec_name": "linear_api_issue_labels"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "linear_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"label_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Label name\",\n      \"name\": \"label_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Team id\",\n      \"name\": \"team_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Parent label id\",\n      \"name\": \"parent_label_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Label color\",\n      \"name\": \"color\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Issue label observations for routing, topic classification, and triage.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Linear API issue labels\",\n    \"spec_name\": \"linear_api_issue_labels\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"linear_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "linear"
          ]
        },
        {
          "specName": "linear_api_projects",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "project_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Project name",
                "name": "project_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Project status",
                "name": "project_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Project lead user id",
                "name": "lead_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Team id",
                "name": "team_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Target date",
                "name": "target_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Project observations for planned product work, status, target dates, leads, and team ownership.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Linear API projects",
              "spec_name": "linear_api_projects"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "linear_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"project_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Project name\",\n      \"name\": \"project_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Project status\",\n      \"name\": \"project_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Project lead user id\",\n      \"name\": \"lead_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Team id\",\n      \"name\": \"team_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Target date\",\n      \"name\": \"target_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Project observations for planned product work, status, target dates, leads, and team ownership.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Linear API projects\",\n    \"spec_name\": \"linear_api_projects\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"linear_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "linear"
          ]
        },
        {
          "specName": "linear_api_project_updates",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "project_update_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Project id",
                "name": "project_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Author user id",
                "name": "author_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Project health",
                "name": "health",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Created timestamp",
                "name": "created_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Short update summary",
                "name": "body_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Project update observations for status reporting, health, and milestone narrative.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Linear API project updates",
              "spec_name": "linear_api_project_updates"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "linear_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"project_update_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Project id\",\n      \"name\": \"project_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Author user id\",\n      \"name\": \"author_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Project health\",\n      \"name\": \"health\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Created timestamp\",\n      \"name\": \"created_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Short update summary\",\n      \"name\": \"body_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Project update observations for status reporting, health, and milestone narrative.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Linear API project updates\",\n    \"spec_name\": \"linear_api_project_updates\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"linear_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "linear"
          ]
        },
        {
          "specName": "linear_api_milestones",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "milestone_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Project id",
                "name": "project_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Milestone name",
                "name": "milestone_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Target date",
                "name": "target_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Milestone position",
                "name": "position",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Milestone observations for project phases, target dates, and delivery checkpoints.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Linear API milestones",
              "spec_name": "linear_api_milestones"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "linear_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"milestone_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Project id\",\n      \"name\": \"project_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Milestone name\",\n      \"name\": \"milestone_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Target date\",\n      \"name\": \"target_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Milestone position\",\n      \"name\": \"position\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Milestone observations for project phases, target dates, and delivery checkpoints.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Linear API milestones\",\n    \"spec_name\": \"linear_api_milestones\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"linear_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "linear"
          ]
        },
        {
          "specName": "linear_api_cycles",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "cycle_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Team id",
                "name": "team_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Cycle number",
                "name": "cycle_number",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Cycle name",
                "name": "cycle_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Cycle start timestamp",
                "name": "starts_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Cycle end timestamp",
                "name": "ends_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Cycle observations for time-boxed team work and delivery planning.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Linear API cycles",
              "spec_name": "linear_api_cycles"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "linear_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"cycle_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Team id\",\n      \"name\": \"team_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Cycle number\",\n      \"name\": \"cycle_number\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Cycle name\",\n      \"name\": \"cycle_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Cycle start timestamp\",\n      \"name\": \"starts_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Cycle end timestamp\",\n      \"name\": \"ends_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Cycle observations for time-boxed team work and delivery planning.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Linear API cycles\",\n    \"spec_name\": \"linear_api_cycles\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"linear_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "linear"
          ]
        },
        {
          "specName": "linear_api_initiatives",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "initiative_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Initiative name",
                "name": "initiative_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Initiative status",
                "name": "initiative_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Owner user id",
                "name": "owner_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Target date",
                "name": "target_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Initiative observations for larger product bets spanning projects and teams.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Linear API initiatives",
              "spec_name": "linear_api_initiatives"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "linear_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"initiative_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Initiative name\",\n      \"name\": \"initiative_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Initiative status\",\n      \"name\": \"initiative_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Owner user id\",\n      \"name\": \"owner_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Target date\",\n      \"name\": \"target_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Initiative observations for larger product bets spanning projects and teams.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Linear API initiatives\",\n    \"spec_name\": \"linear_api_initiatives\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"linear_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "linear"
          ]
        },
        {
          "specName": "linear_api_documents",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "document_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Document title",
                "name": "title",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Creator user id",
                "name": "creator_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Project id",
                "name": "project_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Created timestamp",
                "name": "created_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Updated timestamp",
                "name": "updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Document observations for specs, decisions, and product/project context stored in Linear.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Linear API documents",
              "spec_name": "linear_api_documents"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "linear_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"document_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Document title\",\n      \"name\": \"title\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Creator user id\",\n      \"name\": \"creator_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Project id\",\n      \"name\": \"project_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Created timestamp\",\n      \"name\": \"created_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Updated timestamp\",\n      \"name\": \"updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Document observations for specs, decisions, and product/project context stored in Linear.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Linear API documents\",\n    \"spec_name\": \"linear_api_documents\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"linear_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "linear"
          ]
        },
        {
          "specName": "linear_api_customers",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "customer_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Customer name",
                "name": "customer_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed or tokenized domain reference",
                "name": "domain_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Owner user id",
                "name": "owner_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Customer status",
                "name": "status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Customer observations for customer requests, product feedback, and account-linked issue context.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Linear API customers",
              "spec_name": "linear_api_customers"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "linear_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"customer_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Customer name\",\n      \"name\": \"customer_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed or tokenized domain reference\",\n      \"name\": \"domain_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Owner user id\",\n      \"name\": \"owner_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Customer status\",\n      \"name\": \"status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Customer observations for customer requests, product feedback, and account-linked issue context.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Linear API customers\",\n    \"spec_name\": \"linear_api_customers\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"linear_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "linear"
          ]
        },
        {
          "specName": "linear_api_customer_requests",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "customer_request_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Customer id",
                "name": "customer_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Issue id",
                "name": "issue_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Project id",
                "name": "project_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Request status",
                "name": "request_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Request priority",
                "name": "priority",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Customer request observations for support, feedback, and issue/project demand signals.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Linear API customer requests",
              "spec_name": "linear_api_customer_requests"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "linear_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"customer_request_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Customer id\",\n      \"name\": \"customer_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Issue id\",\n      \"name\": \"issue_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Project id\",\n      \"name\": \"project_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Request status\",\n      \"name\": \"request_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Request priority\",\n      \"name\": \"priority\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Customer request observations for support, feedback, and issue/project demand signals.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Linear API customer requests\",\n    \"spec_name\": \"linear_api_customer_requests\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"linear_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "linear"
          ]
        },
        {
          "specName": "linear_api_webhook_events",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "webhook_event_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Webhook resource type",
                "name": "resource_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Webhook action",
                "name": "action",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Resource id",
                "name": "resource_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Team id",
                "name": "team_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Occurred timestamp",
                "name": "occurred_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Webhook event observations for issue, project, cycle, comment, label, customer, and document change replay.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Linear API webhook events",
              "spec_name": "linear_api_webhook_events"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "linear_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"webhook_event_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Webhook resource type\",\n      \"name\": \"resource_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Webhook action\",\n      \"name\": \"action\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Resource id\",\n      \"name\": \"resource_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Team id\",\n      \"name\": \"team_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Occurred timestamp\",\n      \"name\": \"occurred_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Webhook event observations for issue, project, cycle, comment, label, customer, and document change replay.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Linear API webhook events\",\n    \"spec_name\": \"linear_api_webhook_events\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"linear_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "linear"
          ]
        },
        {
          "specName": "linear_agent_api_issue_create_proposals",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "issue_create_proposal_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "team_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Team id",
                "name": "team_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Project id",
                "name": "project_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Issue title",
                "name": "title",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Proposed priority",
                "name": "proposed_priority",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Proposed assignee user id",
                "name": "proposed_assignee_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed issue creation proposals before outbound Linear sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Linear agent API issue create proposals",
              "spec_name": "linear_agent_api_issue_create_proposals",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "linear_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"issue_create_proposal_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"team_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Team id\",\n      \"name\": \"team_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Project id\",\n      \"name\": \"project_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Issue title\",\n      \"name\": \"title\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Proposed priority\",\n      \"name\": \"proposed_priority\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Proposed assignee user id\",\n      \"name\": \"proposed_assignee_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed issue creation proposals before outbound Linear sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Linear agent API issue create proposals\",\n    \"spec_name\": \"linear_agent_api_issue_create_proposals\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"linear_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "linear"
          ]
        },
        {
          "specName": "linear_agent_api_issue_updates",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "issue_update_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "issue_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Linear issue identifier",
                "name": "identifier",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Field name",
                "name": "field_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Current value",
                "name": "current_value",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Proposed value",
                "name": "proposed_value",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed issue update proposals before outbound Linear sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Linear agent API issue updates",
              "spec_name": "linear_agent_api_issue_updates",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "linear_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"issue_update_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"issue_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Linear issue identifier\",\n      \"name\": \"identifier\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Field name\",\n      \"name\": \"field_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Current value\",\n      \"name\": \"current_value\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Proposed value\",\n      \"name\": \"proposed_value\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed issue update proposals before outbound Linear sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Linear agent API issue updates\",\n    \"spec_name\": \"linear_agent_api_issue_updates\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"linear_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "linear"
          ]
        },
        {
          "specName": "linear_agent_api_project_updates",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "project_update_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "project_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Project id",
                "name": "project_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Current project status",
                "name": "current_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Proposed project status",
                "name": "proposed_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Proposed project health",
                "name": "proposed_health",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed project update proposals before outbound Linear sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Linear agent API project updates",
              "spec_name": "linear_agent_api_project_updates",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "linear_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"project_update_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"project_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Project id\",\n      \"name\": \"project_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Current project status\",\n      \"name\": \"current_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Proposed project status\",\n      \"name\": \"proposed_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Proposed project health\",\n      \"name\": \"proposed_health\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed project update proposals before outbound Linear sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Linear agent API project updates\",\n    \"spec_name\": \"linear_agent_api_project_updates\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"linear_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "linear"
          ]
        },
        {
          "specName": "linear_agent_api_comment_updates",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "comment_update_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "issue_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Linear issue identifier",
                "name": "identifier",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Comment summary",
                "name": "comment_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Visibility scope",
                "name": "visibility_scope",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed comment creation/update proposals before outbound Linear sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Linear agent API comment updates",
              "spec_name": "linear_agent_api_comment_updates",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "linear_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"comment_update_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"issue_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Linear issue identifier\",\n      \"name\": \"identifier\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Comment summary\",\n      \"name\": \"comment_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Visibility scope\",\n      \"name\": \"visibility_scope\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed comment creation/update proposals before outbound Linear sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Linear agent API comment updates\",\n    \"spec_name\": \"linear_agent_api_comment_updates\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"linear_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "linear"
          ]
        }
      ]
    },
    {
      "id": "servicenow_itsm_library",
      "type": "collection",
      "domains": [
        "operations"
      ],
      "systems": [
        "servicenow"
      ],
      "version": "1.0.0",
      "summary": "ServiceNow ITSM specs for incidents, problems, changes, requests, catalog items, approvals, CMDB records, service offerings, SLAs, knowledge, attachments, users, groups, departments, companies, journal entries, webhook events, and governed ITSM updates.",
      "coverageStatus": "Core",
      "coverageNotes": "Covers common ServiceNow ITSM and platform table records used for operational memory and governed service updates. It does not grant broad table-write behavior or mirror every ServiceNow table, ACL, workflow, or product module.",
      "sourceDocs": [
        {
          "label": "ServiceNow REST API reference",
          "url": "https://www.servicenow.com/docs/r/api-reference/rest-apis/api-rest.html"
        },
        {
          "label": "ServiceNow REST API Explorer",
          "url": "https://www.servicenow.com/docs/r/api-reference/rest-api-explorer/c_RESTAPI.html"
        },
        {
          "label": "ServiceNow Attachment API",
          "url": "https://www.servicenow.com/docs/r/api-reference/rest-apis/c_AttachmentAPI.html"
        }
      ],
      "nextObjects": [
        "service_mapping",
        "business_applications",
        "asset_management",
        "configuration_item_changes",
        "service_portfolio",
        "major_incidents",
        "on_call_schedules",
        "custom_app_tables"
      ],
      "omittedObjects": [
        "OAuth/token management",
        "raw user contact details",
        "complete ACL/security metadata",
        "all custom tables",
        "broad write access to arbitrary tables"
      ],
      "needs": [
        "A ServiceNow agent/operator role. The generated calls use servicenow_agent."
      ],
      "usefulFor": [
        "ITSM operational memory",
        "Incident triage",
        "Change governance",
        "Service request follow-up",
        "CMDB impact review",
        "Knowledge article improvement"
      ],
      "extendWith": [
        "Links from monitoring observations into incident creation proposals",
        "Links from Jira/Linear issues into ServiceNow incidents or changes",
        "CMDB relationship reconciliation for impacted services"
      ],
      "searchTerms": [
        "servicenow",
        "service now",
        "itsm",
        "incident",
        "problem",
        "change request",
        "service request",
        "catalog task",
        "cmdb",
        "sla",
        "knowledge",
        "attachments"
      ],
      "links": [
        {
          "from": "servicenow_agent_api_incident_create_proposals",
          "to": "servicenow_api_cmdb_configuration_items",
          "kind": "source_link",
          "description": "Incident creation proposals can cite impacted configuration item observations."
        },
        {
          "from": "servicenow_agent_api_incident_updates",
          "to": "servicenow_api_incidents",
          "kind": "source_link",
          "description": "Incident update proposals cite the current incident observation."
        },
        {
          "from": "servicenow_agent_api_change_request_proposals",
          "to": "servicenow_api_change_requests",
          "kind": "source_link",
          "description": "Change request proposals cite current change observations when updating existing changes."
        },
        {
          "from": "servicenow_agent_api_request_updates",
          "to": "servicenow_api_requests",
          "kind": "source_link",
          "description": "Request update proposals cite the current request observation."
        },
        {
          "from": "servicenow_agent_api_knowledge_updates",
          "to": "servicenow_api_knowledge_articles",
          "kind": "source_link",
          "description": "Knowledge update proposals cite the current knowledge article observation."
        }
      ],
      "installedSpecs": [
        {
          "id": "servicenow_api_incidents",
          "domain": "Observation",
          "purpose": "Incident observations.",
          "systems": [
            "servicenow"
          ]
        },
        {
          "id": "servicenow_api_problems",
          "domain": "Observation",
          "purpose": "Problem observations.",
          "systems": [
            "servicenow"
          ]
        },
        {
          "id": "servicenow_api_change_requests",
          "domain": "Observation",
          "purpose": "Change request observations.",
          "systems": [
            "servicenow"
          ]
        },
        {
          "id": "servicenow_api_change_tasks",
          "domain": "Observation",
          "purpose": "Change task observations.",
          "systems": [
            "servicenow"
          ]
        },
        {
          "id": "servicenow_api_requests",
          "domain": "Observation",
          "purpose": "Service request observations.",
          "systems": [
            "servicenow"
          ]
        },
        {
          "id": "servicenow_api_requested_items",
          "domain": "Observation",
          "purpose": "Requested item observations.",
          "systems": [
            "servicenow"
          ]
        },
        {
          "id": "servicenow_api_catalog_tasks",
          "domain": "Observation",
          "purpose": "Catalog task observations.",
          "systems": [
            "servicenow"
          ]
        },
        {
          "id": "servicenow_api_catalog_items",
          "domain": "Observation",
          "purpose": "Catalog item observations.",
          "systems": [
            "servicenow"
          ]
        },
        {
          "id": "servicenow_api_approvals",
          "domain": "Observation",
          "purpose": "Approval observations.",
          "systems": [
            "servicenow"
          ]
        },
        {
          "id": "servicenow_api_cmdb_configuration_items",
          "domain": "Observation",
          "purpose": "CMDB configuration item observations.",
          "systems": [
            "servicenow"
          ]
        },
        {
          "id": "servicenow_api_cmdb_relationships",
          "domain": "Observation",
          "purpose": "CMDB relationship observations.",
          "systems": [
            "servicenow"
          ]
        },
        {
          "id": "servicenow_api_service_offerings",
          "domain": "Observation",
          "purpose": "Service offering observations.",
          "systems": [
            "servicenow"
          ]
        },
        {
          "id": "servicenow_api_sla_tasks",
          "domain": "Observation",
          "purpose": "SLA task observations.",
          "systems": [
            "servicenow"
          ]
        },
        {
          "id": "servicenow_api_knowledge_articles",
          "domain": "Observation",
          "purpose": "Knowledge article observations.",
          "systems": [
            "servicenow"
          ]
        },
        {
          "id": "servicenow_api_attachments",
          "domain": "Observation",
          "purpose": "Attachment observations.",
          "systems": [
            "servicenow"
          ]
        },
        {
          "id": "servicenow_api_users",
          "domain": "Observation",
          "purpose": "User observations.",
          "systems": [
            "servicenow"
          ]
        },
        {
          "id": "servicenow_api_groups",
          "domain": "Observation",
          "purpose": "Group observations.",
          "systems": [
            "servicenow"
          ]
        },
        {
          "id": "servicenow_api_departments",
          "domain": "Observation",
          "purpose": "Department observations.",
          "systems": [
            "servicenow"
          ]
        },
        {
          "id": "servicenow_api_companies",
          "domain": "Observation",
          "purpose": "Company observations.",
          "systems": [
            "servicenow"
          ]
        },
        {
          "id": "servicenow_api_journal_entries",
          "domain": "Observation",
          "purpose": "Journal entry observations.",
          "systems": [
            "servicenow"
          ]
        },
        {
          "id": "servicenow_api_webhook_events",
          "domain": "Observation",
          "purpose": "ServiceNow event observations.",
          "systems": [
            "servicenow"
          ]
        },
        {
          "id": "servicenow_agent_api_incident_create_proposals",
          "domain": "Commitment workflow",
          "purpose": "Governed incident creation proposals.",
          "systems": [
            "servicenow"
          ]
        },
        {
          "id": "servicenow_agent_api_incident_updates",
          "domain": "Commitment workflow",
          "purpose": "Governed incident updates.",
          "systems": [
            "servicenow"
          ]
        },
        {
          "id": "servicenow_agent_api_change_request_proposals",
          "domain": "Commitment workflow",
          "purpose": "Governed change request proposals.",
          "systems": [
            "servicenow"
          ]
        },
        {
          "id": "servicenow_agent_api_request_updates",
          "domain": "Commitment workflow",
          "purpose": "Governed service request updates.",
          "systems": [
            "servicenow"
          ]
        },
        {
          "id": "servicenow_agent_api_knowledge_updates",
          "domain": "Commitment workflow",
          "purpose": "Governed knowledge article updates.",
          "systems": [
            "servicenow"
          ]
        }
      ],
      "createSpecPayloads": [
        {
          "specName": "servicenow_api_incidents",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "incident_sys_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Incident number",
                "name": "number",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "Short description",
                "name": "short_description",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Incident state",
                "name": "state",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Priority",
                "name": "priority",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Impact",
                "name": "impact",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Urgency",
                "name": "urgency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Assignment group sys_id",
                "name": "assignment_group_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Assigned user sys_id",
                "name": "assigned_to_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Incident observations for service disruption, impact, urgency, assignment, state, and resolution review.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "ServiceNow API incidents",
              "spec_name": "servicenow_api_incidents"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "servicenow_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"incident_sys_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Incident number\",\n      \"name\": \"number\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Short description\",\n      \"name\": \"short_description\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Incident state\",\n      \"name\": \"state\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Priority\",\n      \"name\": \"priority\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Impact\",\n      \"name\": \"impact\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Urgency\",\n      \"name\": \"urgency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Assignment group sys_id\",\n      \"name\": \"assignment_group_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Assigned user sys_id\",\n      \"name\": \"assigned_to_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Incident observations for service disruption, impact, urgency, assignment, state, and resolution review.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"ServiceNow API incidents\",\n    \"spec_name\": \"servicenow_api_incidents\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"servicenow_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "servicenow"
          ]
        },
        {
          "specName": "servicenow_api_problems",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "problem_sys_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Problem number",
                "name": "number",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "Short description",
                "name": "short_description",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Problem state",
                "name": "state",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Priority",
                "name": "priority",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Known error flag",
                "name": "known_error",
                "tests": [],
                "type": "boolean"
              },
              {
                "description": "Assignment group sys_id",
                "name": "assignment_group_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Problem observations for recurring issues, root cause, workarounds, and known error review.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "ServiceNow API problems",
              "spec_name": "servicenow_api_problems"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "servicenow_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"problem_sys_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Problem number\",\n      \"name\": \"number\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Short description\",\n      \"name\": \"short_description\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Problem state\",\n      \"name\": \"state\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Priority\",\n      \"name\": \"priority\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Known error flag\",\n      \"name\": \"known_error\",\n      \"tests\": [],\n      \"type\": \"boolean\"\n    },\n    {\n      \"description\": \"Assignment group sys_id\",\n      \"name\": \"assignment_group_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Problem observations for recurring issues, root cause, workarounds, and known error review.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"ServiceNow API problems\",\n    \"spec_name\": \"servicenow_api_problems\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"servicenow_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "servicenow"
          ]
        },
        {
          "specName": "servicenow_api_change_requests",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "change_request_sys_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Change request number",
                "name": "number",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "Short description",
                "name": "short_description",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Change state",
                "name": "state",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Change type",
                "name": "type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Risk",
                "name": "risk",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Impact",
                "name": "impact",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Approval state",
                "name": "approval",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Planned start timestamp",
                "name": "planned_start_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Planned end timestamp",
                "name": "planned_end_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Change request observations for planned work, risk, approval, schedule, and implementation review.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "ServiceNow API change requests",
              "spec_name": "servicenow_api_change_requests"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "servicenow_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"change_request_sys_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Change request number\",\n      \"name\": \"number\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Short description\",\n      \"name\": \"short_description\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Change state\",\n      \"name\": \"state\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Change type\",\n      \"name\": \"type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Risk\",\n      \"name\": \"risk\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Impact\",\n      \"name\": \"impact\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Approval state\",\n      \"name\": \"approval\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Planned start timestamp\",\n      \"name\": \"planned_start_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Planned end timestamp\",\n      \"name\": \"planned_end_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Change request observations for planned work, risk, approval, schedule, and implementation review.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"ServiceNow API change requests\",\n    \"spec_name\": \"servicenow_api_change_requests\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"servicenow_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "servicenow"
          ]
        },
        {
          "specName": "servicenow_api_change_tasks",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "change_task_sys_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Change task number",
                "name": "number",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "Parent change request sys_id",
                "name": "change_request_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Short description",
                "name": "short_description",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Task state",
                "name": "state",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Assignment group sys_id",
                "name": "assignment_group_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Assigned user sys_id",
                "name": "assigned_to_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Change task observations for implementation steps, owners, and change execution tracking.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "ServiceNow API change tasks",
              "spec_name": "servicenow_api_change_tasks"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "servicenow_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"change_task_sys_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Change task number\",\n      \"name\": \"number\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Parent change request sys_id\",\n      \"name\": \"change_request_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Short description\",\n      \"name\": \"short_description\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Task state\",\n      \"name\": \"state\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Assignment group sys_id\",\n      \"name\": \"assignment_group_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Assigned user sys_id\",\n      \"name\": \"assigned_to_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Change task observations for implementation steps, owners, and change execution tracking.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"ServiceNow API change tasks\",\n    \"spec_name\": \"servicenow_api_change_tasks\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"servicenow_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "servicenow"
          ]
        },
        {
          "specName": "servicenow_api_requests",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "request_sys_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Request number",
                "name": "number",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "Requested-for user sys_id",
                "name": "requested_for_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Opened-by user sys_id",
                "name": "opened_by_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Request state",
                "name": "state",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Approval state",
                "name": "approval",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Request price",
                "name": "price",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Service request observations for requested work, requester context, approval, and fulfillment status.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "ServiceNow API requests",
              "spec_name": "servicenow_api_requests"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "servicenow_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"request_sys_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Request number\",\n      \"name\": \"number\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested-for user sys_id\",\n      \"name\": \"requested_for_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Opened-by user sys_id\",\n      \"name\": \"opened_by_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Request state\",\n      \"name\": \"state\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Approval state\",\n      \"name\": \"approval\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Request price\",\n      \"name\": \"price\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Service request observations for requested work, requester context, approval, and fulfillment status.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"ServiceNow API requests\",\n    \"spec_name\": \"servicenow_api_requests\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"servicenow_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "servicenow"
          ]
        },
        {
          "specName": "servicenow_api_requested_items",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "requested_item_sys_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Requested item number",
                "name": "number",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "Parent request sys_id",
                "name": "request_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Catalog item sys_id",
                "name": "catalog_item_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Requested item state",
                "name": "state",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Fulfillment stage",
                "name": "stage",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Assignment group sys_id",
                "name": "assignment_group_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Requested item observations for catalog fulfillment, variables, assignment, and item-level status.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "ServiceNow API requested items",
              "spec_name": "servicenow_api_requested_items"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "servicenow_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"requested_item_sys_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested item number\",\n      \"name\": \"number\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Parent request sys_id\",\n      \"name\": \"request_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Catalog item sys_id\",\n      \"name\": \"catalog_item_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested item state\",\n      \"name\": \"state\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Fulfillment stage\",\n      \"name\": \"stage\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Assignment group sys_id\",\n      \"name\": \"assignment_group_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Requested item observations for catalog fulfillment, variables, assignment, and item-level status.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"ServiceNow API requested items\",\n    \"spec_name\": \"servicenow_api_requested_items\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"servicenow_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "servicenow"
          ]
        },
        {
          "specName": "servicenow_api_catalog_tasks",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "catalog_task_sys_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Catalog task number",
                "name": "number",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "Requested item sys_id",
                "name": "requested_item_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Short description",
                "name": "short_description",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Task state",
                "name": "state",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Assignment group sys_id",
                "name": "assignment_group_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Assigned user sys_id",
                "name": "assigned_to_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Catalog task observations for request fulfillment work, owners, and task state.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "ServiceNow API catalog tasks",
              "spec_name": "servicenow_api_catalog_tasks"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "servicenow_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"catalog_task_sys_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Catalog task number\",\n      \"name\": \"number\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested item sys_id\",\n      \"name\": \"requested_item_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Short description\",\n      \"name\": \"short_description\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Task state\",\n      \"name\": \"state\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Assignment group sys_id\",\n      \"name\": \"assignment_group_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Assigned user sys_id\",\n      \"name\": \"assigned_to_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Catalog task observations for request fulfillment work, owners, and task state.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"ServiceNow API catalog tasks\",\n    \"spec_name\": \"servicenow_api_catalog_tasks\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"servicenow_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "servicenow"
          ]
        },
        {
          "specName": "servicenow_api_catalog_items",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "catalog_item_sys_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Catalog item name",
                "name": "catalog_item_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Catalog category sys_id",
                "name": "category_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Active flag",
                "name": "active",
                "tests": [],
                "type": "boolean"
              },
              {
                "description": "Fulfillment workflow sys_id",
                "name": "workflow_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Catalog item observations for available services, request forms, and fulfillment routing.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "ServiceNow API catalog items",
              "spec_name": "servicenow_api_catalog_items"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "servicenow_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"catalog_item_sys_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Catalog item name\",\n      \"name\": \"catalog_item_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Catalog category sys_id\",\n      \"name\": \"category_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Active flag\",\n      \"name\": \"active\",\n      \"tests\": [],\n      \"type\": \"boolean\"\n    },\n    {\n      \"description\": \"Fulfillment workflow sys_id\",\n      \"name\": \"workflow_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Catalog item observations for available services, request forms, and fulfillment routing.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"ServiceNow API catalog items\",\n    \"spec_name\": \"servicenow_api_catalog_items\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"servicenow_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "servicenow"
          ]
        },
        {
          "specName": "servicenow_api_approvals",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "approval_sys_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Approving record sys_id",
                "name": "approving_record_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Approver user sys_id",
                "name": "approver_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Approval state",
                "name": "state",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Source table",
                "name": "source_table",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Approval due date",
                "name": "due_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Approval observations for requested approvals, approvers, approval state, and parent records.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "ServiceNow API approvals",
              "spec_name": "servicenow_api_approvals"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "servicenow_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"approval_sys_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Approving record sys_id\",\n      \"name\": \"approving_record_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Approver user sys_id\",\n      \"name\": \"approver_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Approval state\",\n      \"name\": \"state\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Source table\",\n      \"name\": \"source_table\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Approval due date\",\n      \"name\": \"due_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Approval observations for requested approvals, approvers, approval state, and parent records.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"ServiceNow API approvals\",\n    \"spec_name\": \"servicenow_api_approvals\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"servicenow_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "servicenow"
          ]
        },
        {
          "specName": "servicenow_api_cmdb_configuration_items",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "ci_sys_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Configuration item name",
                "name": "ci_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Configuration item class",
                "name": "ci_class",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Install status",
                "name": "install_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Operational status",
                "name": "operational_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Owned-by user sys_id",
                "name": "owned_by_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Support group sys_id",
                "name": "support_group_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "CMDB configuration item observations for services, applications, infrastructure, ownership, and operational impact.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "ServiceNow API CMDB configuration items",
              "spec_name": "servicenow_api_cmdb_configuration_items"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "servicenow_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"ci_sys_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Configuration item name\",\n      \"name\": \"ci_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Configuration item class\",\n      \"name\": \"ci_class\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Install status\",\n      \"name\": \"install_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Operational status\",\n      \"name\": \"operational_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Owned-by user sys_id\",\n      \"name\": \"owned_by_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Support group sys_id\",\n      \"name\": \"support_group_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"CMDB configuration item observations for services, applications, infrastructure, ownership, and operational impact.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"ServiceNow API CMDB configuration items\",\n    \"spec_name\": \"servicenow_api_cmdb_configuration_items\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"servicenow_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "servicenow"
          ]
        },
        {
          "specName": "servicenow_api_cmdb_relationships",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "relationship_sys_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Parent CI sys_id",
                "name": "parent_ci_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Child CI sys_id",
                "name": "child_ci_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Relationship type",
                "name": "relationship_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "CMDB relationship observations for dependency mapping and blast-radius analysis.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "ServiceNow API CMDB relationships",
              "spec_name": "servicenow_api_cmdb_relationships"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "servicenow_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"relationship_sys_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Parent CI sys_id\",\n      \"name\": \"parent_ci_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Child CI sys_id\",\n      \"name\": \"child_ci_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Relationship type\",\n      \"name\": \"relationship_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"CMDB relationship observations for dependency mapping and blast-radius analysis.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"ServiceNow API CMDB relationships\",\n    \"spec_name\": \"servicenow_api_cmdb_relationships\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"servicenow_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "servicenow"
          ]
        },
        {
          "specName": "servicenow_api_service_offerings",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "service_offering_sys_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Service offering name",
                "name": "offering_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Parent service sys_id",
                "name": "service_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Owned-by user sys_id",
                "name": "owned_by_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Support group sys_id",
                "name": "support_group_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Operational status",
                "name": "operational_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Service offering observations for service ownership, catalog visibility, and operational support context.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "ServiceNow API service offerings",
              "spec_name": "servicenow_api_service_offerings"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "servicenow_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"service_offering_sys_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Service offering name\",\n      \"name\": \"offering_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Parent service sys_id\",\n      \"name\": \"service_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Owned-by user sys_id\",\n      \"name\": \"owned_by_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Support group sys_id\",\n      \"name\": \"support_group_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Operational status\",\n      \"name\": \"operational_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Service offering observations for service ownership, catalog visibility, and operational support context.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"ServiceNow API service offerings\",\n    \"spec_name\": \"servicenow_api_service_offerings\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"servicenow_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "servicenow"
          ]
        },
        {
          "specName": "servicenow_api_sla_tasks",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "sla_task_sys_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Task sys_id",
                "name": "task_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "SLA definition sys_id",
                "name": "sla_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "SLA stage",
                "name": "stage",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Business elapsed percentage",
                "name": "business_percentage",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Planned end timestamp",
                "name": "planned_end_time",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Breach flag",
                "name": "has_breached",
                "tests": [],
                "type": "boolean"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "SLA task observations for response/resolve deadlines, breach status, and service performance review.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "ServiceNow API SLA tasks",
              "spec_name": "servicenow_api_sla_tasks"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "servicenow_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"sla_task_sys_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Task sys_id\",\n      \"name\": \"task_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"SLA definition sys_id\",\n      \"name\": \"sla_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"SLA stage\",\n      \"name\": \"stage\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Business elapsed percentage\",\n      \"name\": \"business_percentage\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Planned end timestamp\",\n      \"name\": \"planned_end_time\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Breach flag\",\n      \"name\": \"has_breached\",\n      \"tests\": [],\n      \"type\": \"boolean\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"SLA task observations for response/resolve deadlines, breach status, and service performance review.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"ServiceNow API SLA tasks\",\n    \"spec_name\": \"servicenow_api_sla_tasks\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"servicenow_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "servicenow"
          ]
        },
        {
          "specName": "servicenow_api_knowledge_articles",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "knowledge_article_sys_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Knowledge article number",
                "name": "number",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Short description",
                "name": "short_description",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Workflow state",
                "name": "workflow_state",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Knowledge base sys_id",
                "name": "knowledge_base_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Author user sys_id",
                "name": "author_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Published timestamp",
                "name": "published_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Knowledge article observations for support content, publish state, ownership, and related resolution context.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "ServiceNow API knowledge articles",
              "spec_name": "servicenow_api_knowledge_articles"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "servicenow_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"knowledge_article_sys_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Knowledge article number\",\n      \"name\": \"number\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Short description\",\n      \"name\": \"short_description\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Workflow state\",\n      \"name\": \"workflow_state\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Knowledge base sys_id\",\n      \"name\": \"knowledge_base_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Author user sys_id\",\n      \"name\": \"author_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Published timestamp\",\n      \"name\": \"published_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Knowledge article observations for support content, publish state, ownership, and related resolution context.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"ServiceNow API knowledge articles\",\n    \"spec_name\": \"servicenow_api_knowledge_articles\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"servicenow_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "servicenow"
          ]
        },
        {
          "specName": "servicenow_api_attachments",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "attachment_sys_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Target table name",
                "name": "table_name",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Target record sys_id",
                "name": "table_sys_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "File name",
                "name": "file_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Content type",
                "name": "content_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "File size in bytes",
                "name": "size_bytes",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Attachment observations for files linked to incidents, changes, requests, knowledge, and CMDB records.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "ServiceNow API attachments",
              "spec_name": "servicenow_api_attachments"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "servicenow_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"attachment_sys_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Target table name\",\n      \"name\": \"table_name\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Target record sys_id\",\n      \"name\": \"table_sys_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"File name\",\n      \"name\": \"file_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Content type\",\n      \"name\": \"content_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"File size in bytes\",\n      \"name\": \"size_bytes\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Attachment observations for files linked to incidents, changes, requests, knowledge, and CMDB records.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"ServiceNow API attachments\",\n    \"spec_name\": \"servicenow_api_attachments\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"servicenow_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "servicenow"
          ]
        },
        {
          "specName": "servicenow_api_users",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "user_sys_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed or tokenized username",
                "name": "user_name_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed or tokenized email reference",
                "name": "email_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Department sys_id",
                "name": "department_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Company sys_id",
                "name": "company_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Active flag",
                "name": "active",
                "tests": [],
                "type": "boolean"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "User observations for callers, assignees, approvers, ownership, and audit context.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "ServiceNow API users",
              "spec_name": "servicenow_api_users"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "servicenow_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"user_sys_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed or tokenized username\",\n      \"name\": \"user_name_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed or tokenized email reference\",\n      \"name\": \"email_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Department sys_id\",\n      \"name\": \"department_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Company sys_id\",\n      \"name\": \"company_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Active flag\",\n      \"name\": \"active\",\n      \"tests\": [],\n      \"type\": \"boolean\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"User observations for callers, assignees, approvers, ownership, and audit context.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"ServiceNow API users\",\n    \"spec_name\": \"servicenow_api_users\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"servicenow_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "servicenow"
          ]
        },
        {
          "specName": "servicenow_api_groups",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "group_sys_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Group name",
                "name": "group_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Manager user sys_id",
                "name": "manager_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Parent group sys_id",
                "name": "parent_group_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Active flag",
                "name": "active",
                "tests": [],
                "type": "boolean"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Group observations for assignment groups, support groups, and approval routing.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "ServiceNow API groups",
              "spec_name": "servicenow_api_groups"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "servicenow_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"group_sys_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Group name\",\n      \"name\": \"group_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Manager user sys_id\",\n      \"name\": \"manager_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Parent group sys_id\",\n      \"name\": \"parent_group_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Active flag\",\n      \"name\": \"active\",\n      \"tests\": [],\n      \"type\": \"boolean\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Group observations for assignment groups, support groups, and approval routing.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"ServiceNow API groups\",\n    \"spec_name\": \"servicenow_api_groups\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"servicenow_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "servicenow"
          ]
        },
        {
          "specName": "servicenow_api_departments",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "department_sys_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Department name",
                "name": "department_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Parent department sys_id",
                "name": "parent_department_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Department head user sys_id",
                "name": "dept_head_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Department observations for requester context, cost ownership, and routing.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "ServiceNow API departments",
              "spec_name": "servicenow_api_departments"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "servicenow_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"department_sys_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Department name\",\n      \"name\": \"department_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Parent department sys_id\",\n      \"name\": \"parent_department_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Department head user sys_id\",\n      \"name\": \"dept_head_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Department observations for requester context, cost ownership, and routing.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"ServiceNow API departments\",\n    \"spec_name\": \"servicenow_api_departments\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"servicenow_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "servicenow"
          ]
        },
        {
          "specName": "servicenow_api_companies",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "company_sys_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Company name",
                "name": "company_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Customer flag",
                "name": "customer",
                "tests": [],
                "type": "boolean"
              },
              {
                "description": "Vendor flag",
                "name": "vendor",
                "tests": [],
                "type": "boolean"
              },
              {
                "description": "Manufacturer flag",
                "name": "manufacturer",
                "tests": [],
                "type": "boolean"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Company observations for customer, vendor, or internal company context.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "ServiceNow API companies",
              "spec_name": "servicenow_api_companies"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "servicenow_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"company_sys_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Company name\",\n      \"name\": \"company_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Customer flag\",\n      \"name\": \"customer\",\n      \"tests\": [],\n      \"type\": \"boolean\"\n    },\n    {\n      \"description\": \"Vendor flag\",\n      \"name\": \"vendor\",\n      \"tests\": [],\n      \"type\": \"boolean\"\n    },\n    {\n      \"description\": \"Manufacturer flag\",\n      \"name\": \"manufacturer\",\n      \"tests\": [],\n      \"type\": \"boolean\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Company observations for customer, vendor, or internal company context.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"ServiceNow API companies\",\n    \"spec_name\": \"servicenow_api_companies\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"servicenow_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "servicenow"
          ]
        },
        {
          "specName": "servicenow_api_journal_entries",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "journal_entry_sys_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Parent record sys_id",
                "name": "element_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Table name",
                "name": "name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Journal element",
                "name": "element",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed created-by user",
                "name": "created_by_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Created timestamp",
                "name": "created_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Short journal summary",
                "name": "value_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Journal entry observations for comments, work notes, and activity history on task records.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "ServiceNow API journal entries",
              "spec_name": "servicenow_api_journal_entries"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "servicenow_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"journal_entry_sys_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Parent record sys_id\",\n      \"name\": \"element_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Table name\",\n      \"name\": \"name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Journal element\",\n      \"name\": \"element\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed created-by user\",\n      \"name\": \"created_by_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Created timestamp\",\n      \"name\": \"created_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Short journal summary\",\n      \"name\": \"value_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Journal entry observations for comments, work notes, and activity history on task records.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"ServiceNow API journal entries\",\n    \"spec_name\": \"servicenow_api_journal_entries\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"servicenow_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "servicenow"
          ]
        },
        {
          "specName": "servicenow_api_webhook_events",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "webhook_event_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Source table",
                "name": "source_table",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Record sys_id",
                "name": "record_sys_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Event type",
                "name": "event_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Occurred timestamp",
                "name": "occurred_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Webhook or outbound event observations for changed ITSM records and sync replay.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "ServiceNow API webhook events",
              "spec_name": "servicenow_api_webhook_events"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "servicenow_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"webhook_event_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Source table\",\n      \"name\": \"source_table\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Record sys_id\",\n      \"name\": \"record_sys_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Event type\",\n      \"name\": \"event_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Occurred timestamp\",\n      \"name\": \"occurred_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Webhook or outbound event observations for changed ITSM records and sync replay.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"ServiceNow API webhook events\",\n    \"spec_name\": \"servicenow_api_webhook_events\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"servicenow_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "servicenow"
          ]
        },
        {
          "specName": "servicenow_agent_api_incident_create_proposals",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "incident_create_proposal_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "assignment_group_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Short description",
                "name": "short_description",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Proposed priority",
                "name": "proposed_priority",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Proposed impact",
                "name": "proposed_impact",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Proposed urgency",
                "name": "proposed_urgency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Caller user sys_id",
                "name": "caller_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed incident creation proposals before outbound ServiceNow sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "ServiceNow agent API incident create proposals",
              "spec_name": "servicenow_agent_api_incident_create_proposals",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "servicenow_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"incident_create_proposal_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"assignment_group_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Short description\",\n      \"name\": \"short_description\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Proposed priority\",\n      \"name\": \"proposed_priority\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Proposed impact\",\n      \"name\": \"proposed_impact\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Proposed urgency\",\n      \"name\": \"proposed_urgency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Caller user sys_id\",\n      \"name\": \"caller_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed incident creation proposals before outbound ServiceNow sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"ServiceNow agent API incident create proposals\",\n    \"spec_name\": \"servicenow_agent_api_incident_create_proposals\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"servicenow_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "servicenow"
          ]
        },
        {
          "specName": "servicenow_agent_api_incident_updates",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "incident_update_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "incident_sys_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Incident number",
                "name": "number",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Field name",
                "name": "field_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Current value",
                "name": "current_value",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Proposed value",
                "name": "proposed_value",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed incident update proposals before outbound ServiceNow sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "ServiceNow agent API incident updates",
              "spec_name": "servicenow_agent_api_incident_updates",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "servicenow_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"incident_update_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"incident_sys_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Incident number\",\n      \"name\": \"number\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Field name\",\n      \"name\": \"field_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Current value\",\n      \"name\": \"current_value\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Proposed value\",\n      \"name\": \"proposed_value\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed incident update proposals before outbound ServiceNow sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"ServiceNow agent API incident updates\",\n    \"spec_name\": \"servicenow_agent_api_incident_updates\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"servicenow_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "servicenow"
          ]
        },
        {
          "specName": "servicenow_agent_api_change_request_proposals",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "change_request_proposal_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "change_request_sys_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Change request number",
                "name": "number",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Requested change type",
                "name": "requested_change_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Proposed risk",
                "name": "proposed_risk",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Planned start timestamp",
                "name": "planned_start_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Planned end timestamp",
                "name": "planned_end_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed change request creation/update proposals before outbound ServiceNow sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "ServiceNow agent API change request proposals",
              "spec_name": "servicenow_agent_api_change_request_proposals",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "servicenow_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"change_request_proposal_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"change_request_sys_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Change request number\",\n      \"name\": \"number\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested change type\",\n      \"name\": \"requested_change_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Proposed risk\",\n      \"name\": \"proposed_risk\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Planned start timestamp\",\n      \"name\": \"planned_start_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Planned end timestamp\",\n      \"name\": \"planned_end_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed change request creation/update proposals before outbound ServiceNow sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"ServiceNow agent API change request proposals\",\n    \"spec_name\": \"servicenow_agent_api_change_request_proposals\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"servicenow_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "servicenow"
          ]
        },
        {
          "specName": "servicenow_agent_api_request_updates",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "request_update_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "request_sys_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Request number",
                "name": "number",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Field name",
                "name": "field_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Current value",
                "name": "current_value",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Proposed value",
                "name": "proposed_value",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed service request update proposals before outbound ServiceNow sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "ServiceNow agent API request updates",
              "spec_name": "servicenow_agent_api_request_updates",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "servicenow_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"request_update_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"request_sys_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Request number\",\n      \"name\": \"number\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Field name\",\n      \"name\": \"field_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Current value\",\n      \"name\": \"current_value\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Proposed value\",\n      \"name\": \"proposed_value\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed service request update proposals before outbound ServiceNow sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"ServiceNow agent API request updates\",\n    \"spec_name\": \"servicenow_agent_api_request_updates\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"servicenow_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "servicenow"
          ]
        },
        {
          "specName": "servicenow_agent_api_knowledge_updates",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "knowledge_update_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "knowledge_article_sys_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Knowledge article number",
                "name": "number",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Field name",
                "name": "field_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Current value",
                "name": "current_value",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Proposed value",
                "name": "proposed_value",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed knowledge article update proposals before outbound ServiceNow sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "ServiceNow agent API knowledge updates",
              "spec_name": "servicenow_agent_api_knowledge_updates",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "servicenow_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"knowledge_update_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"knowledge_article_sys_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Knowledge article number\",\n      \"name\": \"number\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Field name\",\n      \"name\": \"field_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Current value\",\n      \"name\": \"current_value\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Proposed value\",\n      \"name\": \"proposed_value\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed knowledge article update proposals before outbound ServiceNow sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"ServiceNow agent API knowledge updates\",\n    \"spec_name\": \"servicenow_agent_api_knowledge_updates\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"servicenow_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "servicenow"
          ]
        }
      ]
    },
    {
      "id": "google_ads_marketing_library",
      "type": "collection",
      "domains": [
        "marketing",
        "commerce"
      ],
      "systems": [
        "google_ads",
        "ad_platforms"
      ],
      "version": "1.0.0",
      "summary": "Google Ads specs for customers, account hierarchy, campaigns, budgets, bidding strategies, ad groups, ads, assets, criteria, asset groups, conversion setup, search terms, performance reporting, recommendations, change events, offline conversion uploads, and governed campaign updates.",
      "coverageStatus": "Core",
      "coverageNotes": "Covers common Google Ads resources and reporting observations that agents use for campaign review, budget pacing, search-term review, conversion-health checks, and approval-first outbound updates. It does not mirror every GAQL report view, mutate operation, policy detail, experiment, audience, billing object, or account-admin record.",
      "sourceDocs": [
        {
          "label": "Google Ads API introduction",
          "url": "https://developers.google.com/google-ads/api/docs/get-started/introduction"
        },
        {
          "label": "Google Ads API fields and resources",
          "url": "https://developers.google.com/google-ads/api/fields/v24/overview"
        },
        {
          "label": "Google Ads conversion management",
          "url": "https://developers.google.com/google-ads/api/docs/conversions/overview"
        }
      ],
      "nextObjects": [
        "audiences",
        "experiments",
        "shared_sets",
        "account_budgets",
        "billing_setups",
        "invoices",
        "campaign_groups",
        "local_services_ads",
        "customer_user_access"
      ],
      "omittedObjects": [
        "OAuth/token management",
        "raw user emails",
        "complete policy detail payloads",
        "all GAQL report views",
        "full billing documents",
        "every mutate operation"
      ],
      "needs": [
        "A Google Ads agent/operator role. The generated calls use google_ads_agent."
      ],
      "usefulFor": [
        "Campaign and budget review",
        "Marketing finance reporting",
        "Search-term mining",
        "Negative keyword proposals",
        "Conversion setup checks",
        "Performance Max and Shopping product review",
        "Governed campaign updates"
      ],
      "extendWith": [
        "Links from Shopify/Square/Stripe revenue observations into performance reporting",
        "Links from search term observations into negative keyword proposals",
        "Links from CRM lead quality observations into offline conversion upload packets"
      ],
      "searchTerms": [
        "google ads",
        "adwords",
        "paid search",
        "ppc",
        "campaigns",
        "ad groups",
        "keywords",
        "negative keywords",
        "search terms",
        "budgets",
        "bidding",
        "conversion actions",
        "offline conversions",
        "performance max",
        "shopping ads",
        "recommendations"
      ],
      "links": [
        {
          "from": "google_ads_agent_api_campaign_budget_updates",
          "to": "google_ads_api_campaign_budgets",
          "kind": "source_link",
          "description": "Budget update proposals cite the current budget observation."
        },
        {
          "from": "google_ads_agent_api_campaign_status_updates",
          "to": "google_ads_api_campaigns",
          "kind": "source_link",
          "description": "Campaign status proposals cite the current campaign observation."
        },
        {
          "from": "google_ads_agent_api_ad_group_bid_updates",
          "to": "google_ads_api_ad_groups",
          "kind": "source_link",
          "description": "Ad group bid proposals cite the current ad group observation."
        },
        {
          "from": "google_ads_agent_api_keyword_updates",
          "to": "google_ads_api_ad_group_criteria",
          "kind": "source_link",
          "description": "Keyword update proposals cite the current ad group criterion observation."
        },
        {
          "from": "google_ads_agent_api_negative_keyword_proposals",
          "to": "google_ads_api_search_terms",
          "kind": "source_link",
          "description": "Negative keyword proposals cite search term observations."
        },
        {
          "from": "google_ads_agent_api_offline_conversion_uploads",
          "to": "google_ads_api_conversion_actions",
          "kind": "source_link",
          "description": "Offline conversion upload packets cite the target conversion action."
        }
      ],
      "installedSpecs": [
        {
          "id": "google_ads_api_customers",
          "domain": "Observation",
          "purpose": "Customer account observations.",
          "systems": [
            "google_ads",
            "ad_platforms"
          ]
        },
        {
          "id": "google_ads_api_customer_clients",
          "domain": "Observation",
          "purpose": "Manager-account hierarchy observations.",
          "systems": [
            "google_ads",
            "ad_platforms"
          ]
        },
        {
          "id": "google_ads_api_campaigns",
          "domain": "Observation",
          "purpose": "Campaign observations.",
          "systems": [
            "google_ads",
            "ad_platforms"
          ]
        },
        {
          "id": "google_ads_api_campaign_budgets",
          "domain": "Observation",
          "purpose": "Campaign budget observations.",
          "systems": [
            "google_ads",
            "ad_platforms"
          ]
        },
        {
          "id": "google_ads_api_bidding_strategies",
          "domain": "Observation",
          "purpose": "Bidding strategy observations.",
          "systems": [
            "google_ads",
            "ad_platforms"
          ]
        },
        {
          "id": "google_ads_api_ad_groups",
          "domain": "Observation",
          "purpose": "Ad group observations.",
          "systems": [
            "google_ads",
            "ad_platforms"
          ]
        },
        {
          "id": "google_ads_api_ad_group_ads",
          "domain": "Observation",
          "purpose": "Ad creative observations.",
          "systems": [
            "google_ads",
            "ad_platforms"
          ]
        },
        {
          "id": "google_ads_api_assets",
          "domain": "Observation",
          "purpose": "Reusable creative asset observations.",
          "systems": [
            "google_ads",
            "ad_platforms"
          ]
        },
        {
          "id": "google_ads_api_campaign_assets",
          "domain": "Observation",
          "purpose": "Campaign asset link observations.",
          "systems": [
            "google_ads",
            "ad_platforms"
          ]
        },
        {
          "id": "google_ads_api_ad_group_criteria",
          "domain": "Observation",
          "purpose": "Ad group targeting and keyword observations.",
          "systems": [
            "google_ads",
            "ad_platforms"
          ]
        },
        {
          "id": "google_ads_api_campaign_criteria",
          "domain": "Observation",
          "purpose": "Campaign-level targeting observations.",
          "systems": [
            "google_ads",
            "ad_platforms"
          ]
        },
        {
          "id": "google_ads_api_asset_groups",
          "domain": "Observation",
          "purpose": "Performance Max asset group observations.",
          "systems": [
            "google_ads",
            "ad_platforms"
          ]
        },
        {
          "id": "google_ads_api_conversion_actions",
          "domain": "Observation",
          "purpose": "Conversion setup observations.",
          "systems": [
            "google_ads",
            "ad_platforms"
          ]
        },
        {
          "id": "google_ads_api_campaign_conversion_goals",
          "domain": "Observation",
          "purpose": "Campaign conversion goal observations.",
          "systems": [
            "google_ads",
            "ad_platforms"
          ]
        },
        {
          "id": "google_ads_api_search_terms",
          "domain": "Observation",
          "purpose": "Search term performance observations.",
          "systems": [
            "google_ads",
            "ad_platforms"
          ]
        },
        {
          "id": "google_ads_api_performance_metrics",
          "domain": "Observation",
          "purpose": "Daily performance metric observations.",
          "systems": [
            "google_ads",
            "ad_platforms"
          ]
        },
        {
          "id": "google_ads_api_geographic_performance",
          "domain": "Observation",
          "purpose": "Geographic performance observations.",
          "systems": [
            "google_ads",
            "ad_platforms"
          ]
        },
        {
          "id": "google_ads_api_product_performance",
          "domain": "Observation",
          "purpose": "Shopping and product performance observations.",
          "systems": [
            "google_ads",
            "ad_platforms"
          ]
        },
        {
          "id": "google_ads_api_recommendations",
          "domain": "Observation",
          "purpose": "Recommendation observations.",
          "systems": [
            "google_ads",
            "ad_platforms"
          ]
        },
        {
          "id": "google_ads_api_change_events",
          "domain": "Observation",
          "purpose": "Account change event observations.",
          "systems": [
            "google_ads",
            "ad_platforms"
          ]
        },
        {
          "id": "google_ads_api_offline_conversion_uploads",
          "domain": "Observation",
          "purpose": "Offline conversion upload health observations.",
          "systems": [
            "google_ads",
            "ad_platforms"
          ]
        },
        {
          "id": "google_ads_agent_api_campaign_budget_updates",
          "domain": "Commitment workflow",
          "purpose": "Governed campaign budget updates.",
          "systems": [
            "google_ads",
            "ad_platforms"
          ]
        },
        {
          "id": "google_ads_agent_api_campaign_status_updates",
          "domain": "Commitment workflow",
          "purpose": "Governed campaign status updates.",
          "systems": [
            "google_ads",
            "ad_platforms"
          ]
        },
        {
          "id": "google_ads_agent_api_ad_group_bid_updates",
          "domain": "Commitment workflow",
          "purpose": "Governed ad group bid updates.",
          "systems": [
            "google_ads",
            "ad_platforms"
          ]
        },
        {
          "id": "google_ads_agent_api_keyword_updates",
          "domain": "Commitment workflow",
          "purpose": "Governed keyword updates.",
          "systems": [
            "google_ads",
            "ad_platforms"
          ]
        },
        {
          "id": "google_ads_agent_api_negative_keyword_proposals",
          "domain": "Commitment workflow",
          "purpose": "Governed negative keyword proposals.",
          "systems": [
            "google_ads",
            "ad_platforms"
          ]
        },
        {
          "id": "google_ads_agent_api_offline_conversion_uploads",
          "domain": "Commitment workflow",
          "purpose": "Governed offline conversion upload packets.",
          "systems": [
            "google_ads",
            "ad_platforms"
          ]
        }
      ],
      "createSpecPayloads": [
        {
          "specName": "google_ads_api_customers",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "customer_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Customer descriptive name",
                "name": "descriptive_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Currency code",
                "name": "currency_code",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Account time zone",
                "name": "time_zone",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Manager account flag",
                "name": "manager",
                "tests": [],
                "type": "boolean"
              },
              {
                "description": "Test account flag",
                "name": "test_account",
                "tests": [],
                "type": "boolean"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Customer account observations for account identity, status, currency, time zone, and manager context.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Ads API customers",
              "spec_name": "google_ads_api_customers"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_ads_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"customer_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Customer descriptive name\",\n      \"name\": \"descriptive_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Currency code\",\n      \"name\": \"currency_code\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Account time zone\",\n      \"name\": \"time_zone\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Manager account flag\",\n      \"name\": \"manager\",\n      \"tests\": [],\n      \"type\": \"boolean\"\n    },\n    {\n      \"description\": \"Test account flag\",\n      \"name\": \"test_account\",\n      \"tests\": [],\n      \"type\": \"boolean\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Customer account observations for account identity, status, currency, time zone, and manager context.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Ads API customers\",\n    \"spec_name\": \"google_ads_api_customers\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_ads_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_ads"
          ]
        },
        {
          "specName": "google_ads_api_customer_clients",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "customer_client_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Manager customer id",
                "name": "manager_customer_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Client customer id",
                "name": "client_customer_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Hierarchy level",
                "name": "level",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Client descriptive name",
                "name": "descriptive_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Client status",
                "name": "status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Manager-account child customer observations for account hierarchy and managed customer visibility.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Ads API customer clients",
              "spec_name": "google_ads_api_customer_clients"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_ads_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"customer_client_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Manager customer id\",\n      \"name\": \"manager_customer_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Client customer id\",\n      \"name\": \"client_customer_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hierarchy level\",\n      \"name\": \"level\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Client descriptive name\",\n      \"name\": \"descriptive_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Client status\",\n      \"name\": \"status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Manager-account child customer observations for account hierarchy and managed customer visibility.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Ads API customer clients\",\n    \"spec_name\": \"google_ads_api_customer_clients\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_ads_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_ads"
          ]
        },
        {
          "specName": "google_ads_api_campaigns",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "campaign_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Customer id",
                "name": "customer_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Campaign name",
                "name": "campaign_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Campaign status",
                "name": "status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Advertising channel type",
                "name": "advertising_channel_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Bidding strategy type",
                "name": "bidding_strategy_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Campaign budget id",
                "name": "campaign_budget_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Campaign observations for status, channel type, bidding, budget linkage, and serving configuration.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Ads API campaigns",
              "spec_name": "google_ads_api_campaigns"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_ads_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"campaign_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Customer id\",\n      \"name\": \"customer_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Campaign name\",\n      \"name\": \"campaign_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Campaign status\",\n      \"name\": \"status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Advertising channel type\",\n      \"name\": \"advertising_channel_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Bidding strategy type\",\n      \"name\": \"bidding_strategy_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Campaign budget id\",\n      \"name\": \"campaign_budget_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Campaign observations for status, channel type, bidding, budget linkage, and serving configuration.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Ads API campaigns\",\n    \"spec_name\": \"google_ads_api_campaigns\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_ads_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_ads"
          ]
        },
        {
          "specName": "google_ads_api_campaign_budgets",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "campaign_budget_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Customer id",
                "name": "customer_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Budget name",
                "name": "budget_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Budget amount in micros",
                "name": "amount_micros",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Delivery method",
                "name": "delivery_method",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Explicitly shared flag",
                "name": "explicitly_shared",
                "tests": [],
                "type": "boolean"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Campaign budget observations for spend limits, delivery method, sharing, and budget governance.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Ads API campaign budgets",
              "spec_name": "google_ads_api_campaign_budgets"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_ads_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"campaign_budget_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Customer id\",\n      \"name\": \"customer_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Budget name\",\n      \"name\": \"budget_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Budget amount in micros\",\n      \"name\": \"amount_micros\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Delivery method\",\n      \"name\": \"delivery_method\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Explicitly shared flag\",\n      \"name\": \"explicitly_shared\",\n      \"tests\": [],\n      \"type\": \"boolean\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Campaign budget observations for spend limits, delivery method, sharing, and budget governance.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Ads API campaign budgets\",\n    \"spec_name\": \"google_ads_api_campaign_budgets\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_ads_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_ads"
          ]
        },
        {
          "specName": "google_ads_api_bidding_strategies",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "bidding_strategy_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Customer id",
                "name": "customer_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Strategy name",
                "name": "strategy_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Strategy type",
                "name": "strategy_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Strategy status",
                "name": "status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Target CPA in micros",
                "name": "target_cpa_micros",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Target ROAS",
                "name": "target_roas",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Bidding strategy observations for portfolio bidding, targets, and automated bidding review.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Ads API bidding strategies",
              "spec_name": "google_ads_api_bidding_strategies"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_ads_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"bidding_strategy_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Customer id\",\n      \"name\": \"customer_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Strategy name\",\n      \"name\": \"strategy_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Strategy type\",\n      \"name\": \"strategy_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Strategy status\",\n      \"name\": \"status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Target CPA in micros\",\n      \"name\": \"target_cpa_micros\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Target ROAS\",\n      \"name\": \"target_roas\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Bidding strategy observations for portfolio bidding, targets, and automated bidding review.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Ads API bidding strategies\",\n    \"spec_name\": \"google_ads_api_bidding_strategies\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_ads_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_ads"
          ]
        },
        {
          "specName": "google_ads_api_ad_groups",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "ad_group_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Campaign id",
                "name": "campaign_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Ad group name",
                "name": "ad_group_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Ad group status",
                "name": "status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Ad group type",
                "name": "type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "CPC bid in micros",
                "name": "cpc_bid_micros",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Ad group observations for campaign structure, status, type, bids, and targeting context.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Ads API ad groups",
              "spec_name": "google_ads_api_ad_groups"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_ads_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"ad_group_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Campaign id\",\n      \"name\": \"campaign_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Ad group name\",\n      \"name\": \"ad_group_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Ad group status\",\n      \"name\": \"status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Ad group type\",\n      \"name\": \"type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"CPC bid in micros\",\n      \"name\": \"cpc_bid_micros\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Ad group observations for campaign structure, status, type, bids, and targeting context.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Ads API ad groups\",\n    \"spec_name\": \"google_ads_api_ad_groups\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_ads_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_ads"
          ]
        },
        {
          "specName": "google_ads_api_ad_group_ads",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "ad_group_ad_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Ad group id",
                "name": "ad_group_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Ad id",
                "name": "ad_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Ad status",
                "name": "status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Ad type",
                "name": "ad_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Ad strength",
                "name": "ad_strength",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Policy approval status",
                "name": "policy_approval_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Ad observations for creative status, ad type, strength, policy summary, and ad group context.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Ads API ad group ads",
              "spec_name": "google_ads_api_ad_group_ads"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_ads_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"ad_group_ad_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Ad group id\",\n      \"name\": \"ad_group_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Ad id\",\n      \"name\": \"ad_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Ad status\",\n      \"name\": \"status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Ad type\",\n      \"name\": \"ad_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Ad strength\",\n      \"name\": \"ad_strength\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Policy approval status\",\n      \"name\": \"policy_approval_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Ad observations for creative status, ad type, strength, policy summary, and ad group context.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Ads API ad group ads\",\n    \"spec_name\": \"google_ads_api_ad_group_ads\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_ads_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_ads"
          ]
        },
        {
          "specName": "google_ads_api_assets",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "asset_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Customer id",
                "name": "customer_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Asset name",
                "name": "asset_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Asset type",
                "name": "asset_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Asset source",
                "name": "source",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Policy approval status",
                "name": "policy_approval_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Asset observations for images, text, sitelinks, callouts, videos, and other reusable creative inputs.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Ads API assets",
              "spec_name": "google_ads_api_assets"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_ads_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"asset_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Customer id\",\n      \"name\": \"customer_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Asset name\",\n      \"name\": \"asset_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Asset type\",\n      \"name\": \"asset_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Asset source\",\n      \"name\": \"source\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Policy approval status\",\n      \"name\": \"policy_approval_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Asset observations for images, text, sitelinks, callouts, videos, and other reusable creative inputs.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Ads API assets\",\n    \"spec_name\": \"google_ads_api_assets\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_ads_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_ads"
          ]
        },
        {
          "specName": "google_ads_api_campaign_assets",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "campaign_asset_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Campaign id",
                "name": "campaign_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Asset id",
                "name": "asset_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Asset field type",
                "name": "field_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Link status",
                "name": "status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Campaign asset link observations connecting reusable assets to campaigns.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Ads API campaign assets",
              "spec_name": "google_ads_api_campaign_assets"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_ads_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"campaign_asset_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Campaign id\",\n      \"name\": \"campaign_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Asset id\",\n      \"name\": \"asset_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Asset field type\",\n      \"name\": \"field_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Link status\",\n      \"name\": \"status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Campaign asset link observations connecting reusable assets to campaigns.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Ads API campaign assets\",\n    \"spec_name\": \"google_ads_api_campaign_assets\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_ads_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_ads"
          ]
        },
        {
          "specName": "google_ads_api_ad_group_criteria",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "criterion_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Ad group id",
                "name": "ad_group_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Criterion type",
                "name": "criterion_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Keyword text",
                "name": "keyword_text",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Keyword match type",
                "name": "match_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Negative criterion flag",
                "name": "negative",
                "tests": [],
                "type": "boolean"
              },
              {
                "description": "Criterion status",
                "name": "status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Ad group criterion observations for keywords, audiences, placements, demographics, negatives, and targeting review.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Ads API ad group criteria",
              "spec_name": "google_ads_api_ad_group_criteria"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_ads_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"criterion_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Ad group id\",\n      \"name\": \"ad_group_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Criterion type\",\n      \"name\": \"criterion_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Keyword text\",\n      \"name\": \"keyword_text\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Keyword match type\",\n      \"name\": \"match_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Negative criterion flag\",\n      \"name\": \"negative\",\n      \"tests\": [],\n      \"type\": \"boolean\"\n    },\n    {\n      \"description\": \"Criterion status\",\n      \"name\": \"status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Ad group criterion observations for keywords, audiences, placements, demographics, negatives, and targeting review.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Ads API ad group criteria\",\n    \"spec_name\": \"google_ads_api_ad_group_criteria\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_ads_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_ads"
          ]
        },
        {
          "specName": "google_ads_api_campaign_criteria",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "campaign_criterion_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Campaign id",
                "name": "campaign_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Criterion type",
                "name": "criterion_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Negative criterion flag",
                "name": "negative",
                "tests": [],
                "type": "boolean"
              },
              {
                "description": "Criterion status",
                "name": "status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Criterion display name",
                "name": "display_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Campaign criterion observations for geo, language, audience, negative, and campaign-level targeting review.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Ads API campaign criteria",
              "spec_name": "google_ads_api_campaign_criteria"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_ads_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"campaign_criterion_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Campaign id\",\n      \"name\": \"campaign_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Criterion type\",\n      \"name\": \"criterion_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Negative criterion flag\",\n      \"name\": \"negative\",\n      \"tests\": [],\n      \"type\": \"boolean\"\n    },\n    {\n      \"description\": \"Criterion status\",\n      \"name\": \"status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Criterion display name\",\n      \"name\": \"display_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Campaign criterion observations for geo, language, audience, negative, and campaign-level targeting review.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Ads API campaign criteria\",\n    \"spec_name\": \"google_ads_api_campaign_criteria\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_ads_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_ads"
          ]
        },
        {
          "specName": "google_ads_api_asset_groups",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "asset_group_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Campaign id",
                "name": "campaign_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Asset group name",
                "name": "asset_group_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Asset group status",
                "name": "status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Final URL",
                "name": "final_url",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Performance Max asset group observations for asset collection, listing group context, and campaign organization.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Ads API asset groups",
              "spec_name": "google_ads_api_asset_groups"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_ads_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"asset_group_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Campaign id\",\n      \"name\": \"campaign_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Asset group name\",\n      \"name\": \"asset_group_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Asset group status\",\n      \"name\": \"status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Final URL\",\n      \"name\": \"final_url\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Performance Max asset group observations for asset collection, listing group context, and campaign organization.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Ads API asset groups\",\n    \"spec_name\": \"google_ads_api_asset_groups\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_ads_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_ads"
          ]
        },
        {
          "specName": "google_ads_api_conversion_actions",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "conversion_action_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Customer id",
                "name": "customer_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Conversion action name",
                "name": "conversion_action_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Conversion action type",
                "name": "type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Conversion category",
                "name": "category",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Conversion action status",
                "name": "status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Included in conversions flag",
                "name": "include_in_conversions_metric",
                "tests": [],
                "type": "boolean"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Conversion action observations for conversion tracking setup, category, status, value settings, and upload readiness.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Ads API conversion actions",
              "spec_name": "google_ads_api_conversion_actions"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_ads_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"conversion_action_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Customer id\",\n      \"name\": \"customer_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Conversion action name\",\n      \"name\": \"conversion_action_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Conversion action type\",\n      \"name\": \"type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Conversion category\",\n      \"name\": \"category\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Conversion action status\",\n      \"name\": \"status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Included in conversions flag\",\n      \"name\": \"include_in_conversions_metric\",\n      \"tests\": [],\n      \"type\": \"boolean\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Conversion action observations for conversion tracking setup, category, status, value settings, and upload readiness.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Ads API conversion actions\",\n    \"spec_name\": \"google_ads_api_conversion_actions\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_ads_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_ads"
          ]
        },
        {
          "specName": "google_ads_api_campaign_conversion_goals",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "campaign_conversion_goal_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Campaign id",
                "name": "campaign_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Conversion goal category",
                "name": "category",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Conversion origin",
                "name": "origin",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Biddable flag",
                "name": "biddable",
                "tests": [],
                "type": "boolean"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Campaign conversion goal observations for campaign-specific optimization goals.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Ads API campaign conversion goals",
              "spec_name": "google_ads_api_campaign_conversion_goals"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_ads_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"campaign_conversion_goal_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Campaign id\",\n      \"name\": \"campaign_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Conversion goal category\",\n      \"name\": \"category\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Conversion origin\",\n      \"name\": \"origin\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Biddable flag\",\n      \"name\": \"biddable\",\n      \"tests\": [],\n      \"type\": \"boolean\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Campaign conversion goal observations for campaign-specific optimization goals.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Ads API campaign conversion goals\",\n    \"spec_name\": \"google_ads_api_campaign_conversion_goals\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_ads_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_ads"
          ]
        },
        {
          "specName": "google_ads_api_search_terms",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "search_term_observation_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Customer id",
                "name": "customer_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Campaign id",
                "name": "campaign_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Ad group id",
                "name": "ad_group_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed or tokenized search term",
                "name": "search_term_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Search term match type",
                "name": "match_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Impressions",
                "name": "impressions",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Clicks",
                "name": "clicks",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Cost in micros",
                "name": "cost_micros",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Search term observations for query review, keyword mining, and negative keyword opportunities.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Ads API search terms",
              "spec_name": "google_ads_api_search_terms"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_ads_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"search_term_observation_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Customer id\",\n      \"name\": \"customer_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Campaign id\",\n      \"name\": \"campaign_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Ad group id\",\n      \"name\": \"ad_group_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed or tokenized search term\",\n      \"name\": \"search_term_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Search term match type\",\n      \"name\": \"match_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Impressions\",\n      \"name\": \"impressions\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Clicks\",\n      \"name\": \"clicks\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Cost in micros\",\n      \"name\": \"cost_micros\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Search term observations for query review, keyword mining, and negative keyword opportunities.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Ads API search terms\",\n    \"spec_name\": \"google_ads_api_search_terms\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_ads_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_ads"
          ]
        },
        {
          "specName": "google_ads_api_performance_metrics",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "performance_observation_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Customer id",
                "name": "customer_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Resource type",
                "name": "resource_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Resource id",
                "name": "resource_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Metric date",
                "name": "date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Impressions",
                "name": "impressions",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Clicks",
                "name": "clicks",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Cost in micros",
                "name": "cost_micros",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Conversions",
                "name": "conversions",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Conversion value",
                "name": "conversion_value",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Daily performance observations for campaign/ad group/ad/keyword reporting and marketing finance review.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Ads API performance metrics",
              "spec_name": "google_ads_api_performance_metrics"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_ads_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"performance_observation_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Customer id\",\n      \"name\": \"customer_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Resource type\",\n      \"name\": \"resource_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Resource id\",\n      \"name\": \"resource_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Metric date\",\n      \"name\": \"date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Impressions\",\n      \"name\": \"impressions\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Clicks\",\n      \"name\": \"clicks\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Cost in micros\",\n      \"name\": \"cost_micros\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Conversions\",\n      \"name\": \"conversions\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Conversion value\",\n      \"name\": \"conversion_value\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Daily performance observations for campaign/ad group/ad/keyword reporting and marketing finance review.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Ads API performance metrics\",\n    \"spec_name\": \"google_ads_api_performance_metrics\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_ads_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_ads"
          ]
        },
        {
          "specName": "google_ads_api_geographic_performance",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "geo_performance_observation_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Customer id",
                "name": "customer_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Campaign id",
                "name": "campaign_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Geo target id",
                "name": "geo_target_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Metric date",
                "name": "date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Impressions",
                "name": "impressions",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Clicks",
                "name": "clicks",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Cost in micros",
                "name": "cost_micros",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Geographic performance observations for market, location, and region-level optimization review.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Ads API geographic performance",
              "spec_name": "google_ads_api_geographic_performance"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_ads_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"geo_performance_observation_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Customer id\",\n      \"name\": \"customer_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Campaign id\",\n      \"name\": \"campaign_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Geo target id\",\n      \"name\": \"geo_target_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Metric date\",\n      \"name\": \"date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Impressions\",\n      \"name\": \"impressions\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Clicks\",\n      \"name\": \"clicks\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Cost in micros\",\n      \"name\": \"cost_micros\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Geographic performance observations for market, location, and region-level optimization review.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Ads API geographic performance\",\n    \"spec_name\": \"google_ads_api_geographic_performance\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_ads_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_ads"
          ]
        },
        {
          "specName": "google_ads_api_product_performance",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "product_performance_observation_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Customer id",
                "name": "customer_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Campaign id",
                "name": "campaign_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Merchant id",
                "name": "merchant_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Product item id",
                "name": "product_item_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Product brand",
                "name": "product_brand",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Metric date",
                "name": "date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Clicks",
                "name": "clicks",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Conversions",
                "name": "conversions",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Shopping and Performance Max product performance observations for item, brand, category, and merchant reporting.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Ads API product performance",
              "spec_name": "google_ads_api_product_performance"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_ads_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"product_performance_observation_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Customer id\",\n      \"name\": \"customer_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Campaign id\",\n      \"name\": \"campaign_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Merchant id\",\n      \"name\": \"merchant_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Product item id\",\n      \"name\": \"product_item_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Product brand\",\n      \"name\": \"product_brand\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Metric date\",\n      \"name\": \"date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Clicks\",\n      \"name\": \"clicks\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Conversions\",\n      \"name\": \"conversions\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Shopping and Performance Max product performance observations for item, brand, category, and merchant reporting.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Ads API product performance\",\n    \"spec_name\": \"google_ads_api_product_performance\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_ads_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_ads"
          ]
        },
        {
          "specName": "google_ads_api_recommendations",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "recommendation_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Customer id",
                "name": "customer_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Recommendation type",
                "name": "recommendation_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Base cost in micros",
                "name": "impact_base_metrics_cost_micros",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Potential conversions",
                "name": "impact_potential_metrics_conversions",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Dismissed flag",
                "name": "dismissed",
                "tests": [],
                "type": "boolean"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Recommendation observations for optimization score, proposed actions, and agent review queues.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Ads API recommendations",
              "spec_name": "google_ads_api_recommendations"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_ads_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"recommendation_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Customer id\",\n      \"name\": \"customer_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Recommendation type\",\n      \"name\": \"recommendation_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Base cost in micros\",\n      \"name\": \"impact_base_metrics_cost_micros\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Potential conversions\",\n      \"name\": \"impact_potential_metrics_conversions\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Dismissed flag\",\n      \"name\": \"dismissed\",\n      \"tests\": [],\n      \"type\": \"boolean\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Recommendation observations for optimization score, proposed actions, and agent review queues.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Ads API recommendations\",\n    \"spec_name\": \"google_ads_api_recommendations\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_ads_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_ads"
          ]
        },
        {
          "specName": "google_ads_api_change_events",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "change_event_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Customer id",
                "name": "customer_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Change timestamp",
                "name": "change_date_time",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Changed resource type",
                "name": "change_resource_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Changed resource name",
                "name": "changed_resource_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed user email",
                "name": "user_email_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Change event observations for account history, actor, resource changes, and sync replay.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Ads API change events",
              "spec_name": "google_ads_api_change_events"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_ads_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"change_event_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Customer id\",\n      \"name\": \"customer_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Change timestamp\",\n      \"name\": \"change_date_time\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Changed resource type\",\n      \"name\": \"change_resource_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Changed resource name\",\n      \"name\": \"changed_resource_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed user email\",\n      \"name\": \"user_email_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Change event observations for account history, actor, resource changes, and sync replay.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Ads API change events\",\n    \"spec_name\": \"google_ads_api_change_events\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_ads_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_ads"
          ]
        },
        {
          "specName": "google_ads_api_offline_conversion_uploads",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "offline_conversion_upload_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Customer id",
                "name": "customer_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Upload job id",
                "name": "job_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Conversion action id",
                "name": "conversion_action_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Uploaded timestamp",
                "name": "uploaded_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Successful event count",
                "name": "successful_event_count",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Failed event count",
                "name": "failed_event_count",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Offline conversion upload observations for job diagnostics, counts, and upload health.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Ads API offline conversion uploads",
              "spec_name": "google_ads_api_offline_conversion_uploads"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_ads_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"offline_conversion_upload_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Customer id\",\n      \"name\": \"customer_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Upload job id\",\n      \"name\": \"job_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Conversion action id\",\n      \"name\": \"conversion_action_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Uploaded timestamp\",\n      \"name\": \"uploaded_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Successful event count\",\n      \"name\": \"successful_event_count\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Failed event count\",\n      \"name\": \"failed_event_count\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Offline conversion upload observations for job diagnostics, counts, and upload health.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Ads API offline conversion uploads\",\n    \"spec_name\": \"google_ads_api_offline_conversion_uploads\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_ads_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_ads"
          ]
        },
        {
          "specName": "google_ads_agent_api_campaign_budget_updates",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "campaign_budget_update_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "campaign_budget_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Customer id",
                "name": "customer_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Current budget amount in micros",
                "name": "current_amount_micros",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Proposed budget amount in micros",
                "name": "proposed_amount_micros",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency code",
                "name": "currency_code",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed campaign budget update proposals before outbound Google Ads sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Ads agent API campaign budget updates",
              "spec_name": "google_ads_agent_api_campaign_budget_updates",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_ads_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"campaign_budget_update_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"campaign_budget_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Customer id\",\n      \"name\": \"customer_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Current budget amount in micros\",\n      \"name\": \"current_amount_micros\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Proposed budget amount in micros\",\n      \"name\": \"proposed_amount_micros\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency code\",\n      \"name\": \"currency_code\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed campaign budget update proposals before outbound Google Ads sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Ads agent API campaign budget updates\",\n    \"spec_name\": \"google_ads_agent_api_campaign_budget_updates\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_ads_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_ads"
          ]
        },
        {
          "specName": "google_ads_agent_api_campaign_status_updates",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "campaign_status_update_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "campaign_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Customer id",
                "name": "customer_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Current campaign status",
                "name": "current_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Proposed campaign status",
                "name": "proposed_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed campaign status update proposals before outbound Google Ads sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Ads agent API campaign status updates",
              "spec_name": "google_ads_agent_api_campaign_status_updates",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_ads_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"campaign_status_update_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"campaign_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Customer id\",\n      \"name\": \"customer_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Current campaign status\",\n      \"name\": \"current_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Proposed campaign status\",\n      \"name\": \"proposed_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed campaign status update proposals before outbound Google Ads sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Ads agent API campaign status updates\",\n    \"spec_name\": \"google_ads_agent_api_campaign_status_updates\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_ads_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_ads"
          ]
        },
        {
          "specName": "google_ads_agent_api_ad_group_bid_updates",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "ad_group_bid_update_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "ad_group_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Customer id",
                "name": "customer_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Current CPC bid in micros",
                "name": "current_cpc_bid_micros",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Proposed CPC bid in micros",
                "name": "proposed_cpc_bid_micros",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed ad group bid update proposals before outbound Google Ads sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Ads agent API ad group bid updates",
              "spec_name": "google_ads_agent_api_ad_group_bid_updates",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_ads_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"ad_group_bid_update_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"ad_group_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Customer id\",\n      \"name\": \"customer_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Current CPC bid in micros\",\n      \"name\": \"current_cpc_bid_micros\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Proposed CPC bid in micros\",\n      \"name\": \"proposed_cpc_bid_micros\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed ad group bid update proposals before outbound Google Ads sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Ads agent API ad group bid updates\",\n    \"spec_name\": \"google_ads_agent_api_ad_group_bid_updates\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_ads_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_ads"
          ]
        },
        {
          "specName": "google_ads_agent_api_keyword_updates",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "keyword_update_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "criterion_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Customer id",
                "name": "customer_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Ad group id",
                "name": "ad_group_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Keyword text",
                "name": "keyword_text",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Match type",
                "name": "match_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Requested keyword update",
                "name": "requested_update",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed keyword/criterion update proposals before outbound Google Ads sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Ads agent API keyword updates",
              "spec_name": "google_ads_agent_api_keyword_updates",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_ads_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"keyword_update_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"criterion_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Customer id\",\n      \"name\": \"customer_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Ad group id\",\n      \"name\": \"ad_group_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Keyword text\",\n      \"name\": \"keyword_text\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Match type\",\n      \"name\": \"match_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested keyword update\",\n      \"name\": \"requested_update\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed keyword/criterion update proposals before outbound Google Ads sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Ads agent API keyword updates\",\n    \"spec_name\": \"google_ads_agent_api_keyword_updates\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_ads_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_ads"
          ]
        },
        {
          "specName": "google_ads_agent_api_negative_keyword_proposals",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "negative_keyword_proposal_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "search_term_observation_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Customer id",
                "name": "customer_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Campaign id",
                "name": "campaign_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Ad group id",
                "name": "ad_group_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed or tokenized search term",
                "name": "search_term_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Proposed negative match type",
                "name": "proposed_match_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed negative keyword proposals from search-term findings before outbound Google Ads sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Ads agent API negative keyword proposals",
              "spec_name": "google_ads_agent_api_negative_keyword_proposals",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_ads_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"negative_keyword_proposal_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"search_term_observation_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Customer id\",\n      \"name\": \"customer_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Campaign id\",\n      \"name\": \"campaign_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Ad group id\",\n      \"name\": \"ad_group_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed or tokenized search term\",\n      \"name\": \"search_term_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Proposed negative match type\",\n      \"name\": \"proposed_match_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed negative keyword proposals from search-term findings before outbound Google Ads sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Ads agent API negative keyword proposals\",\n    \"spec_name\": \"google_ads_agent_api_negative_keyword_proposals\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_ads_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_ads"
          ]
        },
        {
          "specName": "google_ads_agent_api_offline_conversion_uploads",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "offline_conversion_upload_commitment_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "conversion_action_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Customer id",
                "name": "customer_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Upload job id",
                "name": "job_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Conversion event count",
                "name": "conversion_event_count",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Total conversion value",
                "name": "conversion_value_total",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency code",
                "name": "currency_code",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed offline conversion upload packets before outbound Google Ads sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Ads agent API offline conversion uploads",
              "spec_name": "google_ads_agent_api_offline_conversion_uploads",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_ads_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"offline_conversion_upload_commitment_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"conversion_action_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Customer id\",\n      \"name\": \"customer_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Upload job id\",\n      \"name\": \"job_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Conversion event count\",\n      \"name\": \"conversion_event_count\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Total conversion value\",\n      \"name\": \"conversion_value_total\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency code\",\n      \"name\": \"currency_code\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed offline conversion upload packets before outbound Google Ads sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Ads agent API offline conversion uploads\",\n    \"spec_name\": \"google_ads_agent_api_offline_conversion_uploads\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_ads_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_ads"
          ]
        }
      ]
    },
    {
      "id": "google_analytics_measurement_library",
      "type": "collection",
      "domains": [
        "marketing",
        "commerce"
      ],
      "systems": [
        "google_analytics"
      ],
      "version": "1.0.0",
      "summary": "Google Analytics specs for accounts, GA4 properties, data streams, event reports, page reports, acquisition reports, ecommerce reports, key events, audiences, custom definitions, realtime snapshots, and governed GA4 configuration updates.",
      "coverageStatus": "Core",
      "coverageNotes": "Covers common GA4 reporting and configuration objects agents use for marketing measurement, ecommerce analysis, funnel review, and careful GA4 setup changes. It does not mirror every Data API dimension or metric, attribution report, user permission, tag setting, or early-preview Admin API feature.",
      "sourceDocs": [
        {
          "label": "Google Analytics Data API runReport",
          "url": "https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1beta/properties/runReport"
        },
        {
          "label": "Google Analytics dimensions and metrics",
          "url": "https://developers.google.com/analytics/devguides/reporting/data/v1/api-schema"
        },
        {
          "label": "Google Analytics Admin API overview",
          "url": "https://developers.google.com/analytics/devguides/config/admin/v1"
        }
      ],
      "nextObjects": [
        "attribution_reports",
        "funnel_reports",
        "cohort_reports",
        "user_permissions",
        "google_ads_links",
        "bigquery_links",
        "data_retention_settings",
        "measurement_protocol_secrets"
      ],
      "omittedObjects": [
        "OAuth/token management",
        "raw client identifiers",
        "raw page URLs",
        "complete user-level event export",
        "every Data API dimension/metric combination"
      ],
      "needs": [
        "A Google Analytics agent/operator role. The generated calls use google_analytics_agent."
      ],
      "usefulFor": [
        "Website and app measurement memory",
        "Funnel and ecommerce reporting",
        "Paid-media performance review",
        "GA4 setup checks",
        "Governed audience and key-event changes"
      ],
      "extendWith": [
        "Links from Google Ads campaigns into acquisition reports",
        "Links from Shopify/Square/Stripe revenue observations into ecommerce reports",
        "Search Console query/page observations alongside page reports"
      ],
      "searchTerms": [
        "google analytics",
        "ga4",
        "analytics data api",
        "analytics admin api",
        "events",
        "pages",
        "acquisition",
        "ecommerce",
        "key events",
        "audiences",
        "custom dimensions",
        "custom metrics",
        "realtime"
      ],
      "links": [
        {
          "from": "google_analytics_agent_api_audience_updates",
          "to": "google_analytics_api_audiences",
          "kind": "source_link",
          "description": "Audience update proposals cite the current audience observation."
        },
        {
          "from": "google_analytics_agent_api_key_event_updates",
          "to": "google_analytics_api_key_events",
          "kind": "source_link",
          "description": "Key event update proposals cite the current key event observation."
        },
        {
          "from": "google_analytics_agent_api_custom_definition_updates",
          "to": "google_analytics_api_custom_dimensions",
          "kind": "source_link",
          "description": "Custom definition proposals can cite current custom dimension observations."
        },
        {
          "from": "google_analytics_agent_api_custom_definition_updates",
          "to": "google_analytics_api_custom_metrics",
          "kind": "source_link",
          "description": "Custom definition proposals can cite current custom metric observations."
        }
      ],
      "installedSpecs": [
        {
          "id": "google_analytics_api_accounts",
          "domain": "Observation",
          "purpose": "GA4 account observations.",
          "systems": [
            "google_analytics"
          ]
        },
        {
          "id": "google_analytics_api_properties",
          "domain": "Observation",
          "purpose": "GA4 property observations.",
          "systems": [
            "google_analytics"
          ]
        },
        {
          "id": "google_analytics_api_data_streams",
          "domain": "Observation",
          "purpose": "Data stream observations.",
          "systems": [
            "google_analytics"
          ]
        },
        {
          "id": "google_analytics_api_events_report",
          "domain": "Observation",
          "purpose": "Event report observations.",
          "systems": [
            "google_analytics"
          ]
        },
        {
          "id": "google_analytics_api_page_report",
          "domain": "Observation",
          "purpose": "Page and screen report observations.",
          "systems": [
            "google_analytics"
          ]
        },
        {
          "id": "google_analytics_api_acquisition_report",
          "domain": "Observation",
          "purpose": "Traffic acquisition observations.",
          "systems": [
            "google_analytics"
          ]
        },
        {
          "id": "google_analytics_api_ecommerce_report",
          "domain": "Observation",
          "purpose": "Ecommerce report observations.",
          "systems": [
            "google_analytics"
          ]
        },
        {
          "id": "google_analytics_api_key_events",
          "domain": "Observation",
          "purpose": "Key event observations.",
          "systems": [
            "google_analytics"
          ]
        },
        {
          "id": "google_analytics_api_audiences",
          "domain": "Observation",
          "purpose": "Audience observations.",
          "systems": [
            "google_analytics"
          ]
        },
        {
          "id": "google_analytics_api_custom_dimensions",
          "domain": "Observation",
          "purpose": "Custom dimension observations.",
          "systems": [
            "google_analytics"
          ]
        },
        {
          "id": "google_analytics_api_custom_metrics",
          "domain": "Observation",
          "purpose": "Custom metric observations.",
          "systems": [
            "google_analytics"
          ]
        },
        {
          "id": "google_analytics_api_realtime_snapshots",
          "domain": "Observation",
          "purpose": "Realtime snapshot observations.",
          "systems": [
            "google_analytics"
          ]
        },
        {
          "id": "google_analytics_agent_api_audience_updates",
          "domain": "Commitment workflow",
          "purpose": "Governed audience updates.",
          "systems": [
            "google_analytics"
          ]
        },
        {
          "id": "google_analytics_agent_api_key_event_updates",
          "domain": "Commitment workflow",
          "purpose": "Governed key event updates.",
          "systems": [
            "google_analytics"
          ]
        },
        {
          "id": "google_analytics_agent_api_custom_definition_updates",
          "domain": "Commitment workflow",
          "purpose": "Governed custom definition updates.",
          "systems": [
            "google_analytics"
          ]
        }
      ],
      "createSpecPayloads": [
        {
          "specName": "google_analytics_api_accounts",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "account_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Account display name",
                "name": "display_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Region code",
                "name": "region_code",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Account observations for GA4 account identity, ownership, and access review.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Analytics API accounts",
              "spec_name": "google_analytics_api_accounts"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_analytics_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"account_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Account display name\",\n      \"name\": \"display_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Region code\",\n      \"name\": \"region_code\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Account observations for GA4 account identity, ownership, and access review.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Analytics API accounts\",\n    \"spec_name\": \"google_analytics_api_accounts\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_analytics_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_analytics"
          ]
        },
        {
          "specName": "google_analytics_api_properties",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "property_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Account id",
                "name": "account_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Property display name",
                "name": "display_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Currency code",
                "name": "currency_code",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Reporting time zone",
                "name": "time_zone",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "GA4 property observations for property identity, currency, time zone, and lifecycle status.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Analytics API properties",
              "spec_name": "google_analytics_api_properties"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_analytics_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"property_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Account id\",\n      \"name\": \"account_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Property display name\",\n      \"name\": \"display_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Currency code\",\n      \"name\": \"currency_code\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Reporting time zone\",\n      \"name\": \"time_zone\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"GA4 property observations for property identity, currency, time zone, and lifecycle status.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Analytics API properties\",\n    \"spec_name\": \"google_analytics_api_properties\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_analytics_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_analytics"
          ]
        },
        {
          "specName": "google_analytics_api_data_streams",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "data_stream_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Property id",
                "name": "property_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Stream display name",
                "name": "stream_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Stream type",
                "name": "stream_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Measurement id or app stream id",
                "name": "measurement_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Web and app data stream observations for measurement ids, stream type, and collection health.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Analytics API data streams",
              "spec_name": "google_analytics_api_data_streams"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_analytics_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"data_stream_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Property id\",\n      \"name\": \"property_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Stream display name\",\n      \"name\": \"stream_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Stream type\",\n      \"name\": \"stream_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Measurement id or app stream id\",\n      \"name\": \"measurement_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Web and app data stream observations for measurement ids, stream type, and collection health.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Analytics API data streams\",\n    \"spec_name\": \"google_analytics_api_data_streams\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_analytics_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_analytics"
          ]
        },
        {
          "specName": "google_analytics_api_events_report",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "event_report_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Property id",
                "name": "property_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Report date",
                "name": "date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Event name",
                "name": "event_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Event count",
                "name": "event_count",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Active users",
                "name": "active_users",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Total revenue",
                "name": "total_revenue",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Event-level reporting observations for event names, counts, users, revenue, and date ranges.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Analytics API events report",
              "spec_name": "google_analytics_api_events_report"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_analytics_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"event_report_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Property id\",\n      \"name\": \"property_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Report date\",\n      \"name\": \"date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Event name\",\n      \"name\": \"event_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Event count\",\n      \"name\": \"event_count\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Active users\",\n      \"name\": \"active_users\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Total revenue\",\n      \"name\": \"total_revenue\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Event-level reporting observations for event names, counts, users, revenue, and date ranges.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Analytics API events report\",\n    \"spec_name\": \"google_analytics_api_events_report\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_analytics_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_analytics"
          ]
        },
        {
          "specName": "google_analytics_api_page_report",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "page_report_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Property id",
                "name": "property_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Report date",
                "name": "date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed page path or screen token",
                "name": "page_path_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Views",
                "name": "screen_page_views",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Active users",
                "name": "active_users",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Engagement rate",
                "name": "engagement_rate",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Page and screen reporting observations for content performance, views, users, and engagement.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Analytics API page report",
              "spec_name": "google_analytics_api_page_report"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_analytics_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"page_report_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Property id\",\n      \"name\": \"property_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Report date\",\n      \"name\": \"date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed page path or screen token\",\n      \"name\": \"page_path_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Views\",\n      \"name\": \"screen_page_views\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Active users\",\n      \"name\": \"active_users\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Engagement rate\",\n      \"name\": \"engagement_rate\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Page and screen reporting observations for content performance, views, users, and engagement.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Analytics API page report\",\n    \"spec_name\": \"google_analytics_api_page_report\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_analytics_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_analytics"
          ]
        },
        {
          "specName": "google_analytics_api_acquisition_report",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "acquisition_report_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Property id",
                "name": "property_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Report date",
                "name": "date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Session source",
                "name": "session_source",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Session medium",
                "name": "session_medium",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Session campaign",
                "name": "session_campaign_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Sessions",
                "name": "sessions",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Conversions",
                "name": "conversions",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Traffic acquisition observations for source, medium, campaign, users, sessions, and conversions.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Analytics API acquisition report",
              "spec_name": "google_analytics_api_acquisition_report"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_analytics_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"acquisition_report_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Property id\",\n      \"name\": \"property_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Report date\",\n      \"name\": \"date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Session source\",\n      \"name\": \"session_source\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Session medium\",\n      \"name\": \"session_medium\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Session campaign\",\n      \"name\": \"session_campaign_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Sessions\",\n      \"name\": \"sessions\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Conversions\",\n      \"name\": \"conversions\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Traffic acquisition observations for source, medium, campaign, users, sessions, and conversions.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Analytics API acquisition report\",\n    \"spec_name\": \"google_analytics_api_acquisition_report\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_analytics_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_analytics"
          ]
        },
        {
          "specName": "google_analytics_api_ecommerce_report",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "ecommerce_report_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Property id",
                "name": "property_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Report date",
                "name": "date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Item id",
                "name": "item_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Item name",
                "name": "item_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Items purchased",
                "name": "items_purchased",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Item revenue",
                "name": "item_revenue",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Ecommerce reporting observations for items, purchases, revenue, and funnel review.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Analytics API ecommerce report",
              "spec_name": "google_analytics_api_ecommerce_report"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_analytics_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"ecommerce_report_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Property id\",\n      \"name\": \"property_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Report date\",\n      \"name\": \"date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Item id\",\n      \"name\": \"item_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Item name\",\n      \"name\": \"item_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Items purchased\",\n      \"name\": \"items_purchased\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Item revenue\",\n      \"name\": \"item_revenue\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Ecommerce reporting observations for items, purchases, revenue, and funnel review.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Analytics API ecommerce report\",\n    \"spec_name\": \"google_analytics_api_ecommerce_report\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_analytics_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_analytics"
          ]
        },
        {
          "specName": "google_analytics_api_key_events",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "key_event_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Property id",
                "name": "property_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Event name",
                "name": "event_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Counting method",
                "name": "counting_method",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Default event value",
                "name": "default_value",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Key event observations for conversion-important events and reporting configuration.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Analytics API key events",
              "spec_name": "google_analytics_api_key_events"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_analytics_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"key_event_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Property id\",\n      \"name\": \"property_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Event name\",\n      \"name\": \"event_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Counting method\",\n      \"name\": \"counting_method\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Default event value\",\n      \"name\": \"default_value\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Key event observations for conversion-important events and reporting configuration.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Analytics API key events\",\n    \"spec_name\": \"google_analytics_api_key_events\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_analytics_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_analytics"
          ]
        },
        {
          "specName": "google_analytics_api_audiences",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "audience_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Property id",
                "name": "property_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Audience name",
                "name": "audience_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Membership duration days",
                "name": "membership_duration_days",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Ads personalization flag",
                "name": "ads_personalization_enabled",
                "tests": [],
                "type": "boolean"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Audience observations for audience definitions, membership windows, and activation review.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Analytics API audiences",
              "spec_name": "google_analytics_api_audiences"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_analytics_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"audience_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Property id\",\n      \"name\": \"property_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Audience name\",\n      \"name\": \"audience_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Membership duration days\",\n      \"name\": \"membership_duration_days\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Ads personalization flag\",\n      \"name\": \"ads_personalization_enabled\",\n      \"tests\": [],\n      \"type\": \"boolean\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Audience observations for audience definitions, membership windows, and activation review.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Analytics API audiences\",\n    \"spec_name\": \"google_analytics_api_audiences\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_analytics_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_analytics"
          ]
        },
        {
          "specName": "google_analytics_api_custom_dimensions",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "custom_dimension_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Property id",
                "name": "property_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Parameter name",
                "name": "parameter_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Display name",
                "name": "display_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Dimension scope",
                "name": "scope",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Custom dimension observations for event/user/item-scoped reporting fields.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Analytics API custom dimensions",
              "spec_name": "google_analytics_api_custom_dimensions"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_analytics_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"custom_dimension_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Property id\",\n      \"name\": \"property_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Parameter name\",\n      \"name\": \"parameter_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Display name\",\n      \"name\": \"display_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Dimension scope\",\n      \"name\": \"scope\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Custom dimension observations for event/user/item-scoped reporting fields.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Analytics API custom dimensions\",\n    \"spec_name\": \"google_analytics_api_custom_dimensions\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_analytics_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_analytics"
          ]
        },
        {
          "specName": "google_analytics_api_custom_metrics",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "custom_metric_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Property id",
                "name": "property_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Parameter name",
                "name": "parameter_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Display name",
                "name": "display_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Measurement unit",
                "name": "measurement_unit",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Custom metric observations for typed event metrics and reporting availability.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Analytics API custom metrics",
              "spec_name": "google_analytics_api_custom_metrics"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_analytics_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"custom_metric_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Property id\",\n      \"name\": \"property_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Parameter name\",\n      \"name\": \"parameter_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Display name\",\n      \"name\": \"display_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Measurement unit\",\n      \"name\": \"measurement_unit\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Custom metric observations for typed event metrics and reporting availability.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Analytics API custom metrics\",\n    \"spec_name\": \"google_analytics_api_custom_metrics\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_analytics_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_analytics"
          ]
        },
        {
          "specName": "google_analytics_api_realtime_snapshots",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "realtime_snapshot_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Property id",
                "name": "property_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Capture minute",
                "name": "captured_minute",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Active users",
                "name": "active_users",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Top event name",
                "name": "top_event_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed top page path",
                "name": "top_page_path_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Realtime reporting observations for active users, current pages, campaigns, and events.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Analytics API realtime snapshots",
              "spec_name": "google_analytics_api_realtime_snapshots"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_analytics_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"realtime_snapshot_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Property id\",\n      \"name\": \"property_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Capture minute\",\n      \"name\": \"captured_minute\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Active users\",\n      \"name\": \"active_users\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Top event name\",\n      \"name\": \"top_event_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed top page path\",\n      \"name\": \"top_page_path_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Realtime reporting observations for active users, current pages, campaigns, and events.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Analytics API realtime snapshots\",\n    \"spec_name\": \"google_analytics_api_realtime_snapshots\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_analytics_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_analytics"
          ]
        },
        {
          "specName": "google_analytics_agent_api_audience_updates",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "audience_update_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "audience_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Property id",
                "name": "property_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Current audience name",
                "name": "current_audience_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Proposed audience name",
                "name": "proposed_audience_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Proposed membership duration days",
                "name": "proposed_membership_duration_days",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed GA4 audience create/update proposals before outbound Google Analytics sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Analytics agent API audience updates",
              "spec_name": "google_analytics_agent_api_audience_updates",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_analytics_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"audience_update_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"audience_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Property id\",\n      \"name\": \"property_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Current audience name\",\n      \"name\": \"current_audience_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Proposed audience name\",\n      \"name\": \"proposed_audience_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Proposed membership duration days\",\n      \"name\": \"proposed_membership_duration_days\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed GA4 audience create/update proposals before outbound Google Analytics sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Analytics agent API audience updates\",\n    \"spec_name\": \"google_analytics_agent_api_audience_updates\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_analytics_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_analytics"
          ]
        },
        {
          "specName": "google_analytics_agent_api_key_event_updates",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "key_event_update_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "key_event_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Property id",
                "name": "property_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Event name",
                "name": "event_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Current counting method",
                "name": "current_counting_method",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Proposed counting method",
                "name": "proposed_counting_method",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed key event configuration proposals before outbound Google Analytics sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Analytics agent API key event updates",
              "spec_name": "google_analytics_agent_api_key_event_updates",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_analytics_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"key_event_update_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"key_event_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Property id\",\n      \"name\": \"property_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Event name\",\n      \"name\": \"event_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Current counting method\",\n      \"name\": \"current_counting_method\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Proposed counting method\",\n      \"name\": \"proposed_counting_method\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed key event configuration proposals before outbound Google Analytics sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Analytics agent API key event updates\",\n    \"spec_name\": \"google_analytics_agent_api_key_event_updates\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_analytics_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_analytics"
          ]
        },
        {
          "specName": "google_analytics_agent_api_custom_definition_updates",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "custom_definition_update_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "custom_definition_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Property id",
                "name": "property_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Dimension or metric",
                "name": "definition_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Parameter name",
                "name": "parameter_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Display name",
                "name": "display_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Scope or unit",
                "name": "scope_or_unit",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed custom dimension or metric proposals before outbound Google Analytics sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Analytics agent API custom definition updates",
              "spec_name": "google_analytics_agent_api_custom_definition_updates",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_analytics_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"custom_definition_update_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"custom_definition_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Property id\",\n      \"name\": \"property_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Dimension or metric\",\n      \"name\": \"definition_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Parameter name\",\n      \"name\": \"parameter_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Display name\",\n      \"name\": \"display_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Scope or unit\",\n      \"name\": \"scope_or_unit\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed custom dimension or metric proposals before outbound Google Analytics sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Analytics agent API custom definition updates\",\n    \"spec_name\": \"google_analytics_agent_api_custom_definition_updates\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_analytics_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_analytics"
          ]
        }
      ]
    },
    {
      "id": "google_merchant_center_commerce_library",
      "type": "collection",
      "domains": [
        "commerce",
        "marketing"
      ],
      "systems": [
        "google_merchant_center"
      ],
      "version": "1.0.0",
      "summary": "Google Merchant Center specs for accounts, account issues, processed products, product inputs, product issues, data sources, upload health, local and regional inventory, promotions, performance reports, competitive visibility, conversion sources, programs, return policies, shipping settings, reviews, and governed catalog updates.",
      "coverageStatus": "Core",
      "coverageNotes": "Covers common Merchant API surfaces for catalog health, Shopping visibility, product data operations, inventory, promotions, and approval-first catalog changes. It does not mirror every report, every advanced account setting, all review feed details, or broad write access to Merchant Center.",
      "sourceDocs": [
        {
          "label": "Merchant API overview",
          "url": "https://developers.google.com/merchant/api"
        },
        {
          "label": "Merchant Products API overview",
          "url": "https://developers.google.com/merchant/api/guides/products/overview"
        },
        {
          "label": "Merchant data sources overview",
          "url": "https://developers.google.com/merchant/api/guides/data-sources/overview"
        }
      ],
      "nextObjects": [
        "checkout_settings",
        "order_tracking_signals",
        "css_programs",
        "product_studio_text_suggestions",
        "product_studio_images",
        "account_relationships",
        "user_access",
        "regional_shipping_services"
      ],
      "omittedObjects": [
        "OAuth/token management",
        "raw customer review text",
        "every Merchant Center report query",
        "advanced account-only feed rules",
        "complete account access-control metadata"
      ],
      "needs": [
        "A Google Merchant Center agent/operator role. The generated calls use google_merchant_center_agent."
      ],
      "usefulFor": [
        "Shopping catalog memory",
        "Product approval monitoring",
        "Feed and data source health",
        "Local inventory review",
        "Promotion readiness",
        "Governed product and inventory updates"
      ],
      "extendWith": [
        "Links from Shopify products into product input update proposals",
        "Links from Google Ads product performance into product issue review",
        "Links from Search Console product-page findings into Merchant Center issue queues"
      ],
      "searchTerms": [
        "google merchant center",
        "merchant api",
        "shopping",
        "product inputs",
        "products",
        "product issues",
        "data sources",
        "feeds",
        "local inventory",
        "regional inventory",
        "promotions",
        "free listings",
        "shopping ads"
      ],
      "links": [
        {
          "from": "google_merchant_center_agent_api_product_input_updates",
          "to": "google_merchant_center_api_product_inputs",
          "kind": "source_link",
          "description": "Product input update proposals cite submitted product input observations."
        },
        {
          "from": "google_merchant_center_agent_api_product_input_updates",
          "to": "google_merchant_center_api_product_issues",
          "kind": "source_link",
          "description": "Product input update proposals can cite product issue observations."
        },
        {
          "from": "google_merchant_center_agent_api_inventory_updates",
          "to": "google_merchant_center_api_local_inventories",
          "kind": "source_link",
          "description": "Inventory update proposals can cite local inventory observations."
        },
        {
          "from": "google_merchant_center_agent_api_inventory_updates",
          "to": "google_merchant_center_api_regional_inventories",
          "kind": "source_link",
          "description": "Inventory update proposals can cite regional inventory observations."
        },
        {
          "from": "google_merchant_center_agent_api_promotion_updates",
          "to": "google_merchant_center_api_promotions",
          "kind": "source_link",
          "description": "Promotion update proposals cite current promotion observations."
        },
        {
          "from": "google_merchant_center_agent_api_data_source_updates",
          "to": "google_merchant_center_api_data_sources",
          "kind": "source_link",
          "description": "Data source update proposals cite current data source observations."
        }
      ],
      "installedSpecs": [
        {
          "id": "google_merchant_center_api_accounts",
          "domain": "Observation",
          "purpose": "Merchant account observations.",
          "systems": [
            "google_merchant_center"
          ]
        },
        {
          "id": "google_merchant_center_api_account_issues",
          "domain": "Observation",
          "purpose": "Account issue observations.",
          "systems": [
            "google_merchant_center"
          ]
        },
        {
          "id": "google_merchant_center_api_products",
          "domain": "Observation",
          "purpose": "Processed product observations.",
          "systems": [
            "google_merchant_center"
          ]
        },
        {
          "id": "google_merchant_center_api_product_inputs",
          "domain": "Observation",
          "purpose": "Product input observations.",
          "systems": [
            "google_merchant_center"
          ]
        },
        {
          "id": "google_merchant_center_api_product_issues",
          "domain": "Observation",
          "purpose": "Product issue observations.",
          "systems": [
            "google_merchant_center"
          ]
        },
        {
          "id": "google_merchant_center_api_data_sources",
          "domain": "Observation",
          "purpose": "Data source observations.",
          "systems": [
            "google_merchant_center"
          ]
        },
        {
          "id": "google_merchant_center_api_file_uploads",
          "domain": "Observation",
          "purpose": "File upload health observations.",
          "systems": [
            "google_merchant_center"
          ]
        },
        {
          "id": "google_merchant_center_api_local_inventories",
          "domain": "Observation",
          "purpose": "Local inventory observations.",
          "systems": [
            "google_merchant_center"
          ]
        },
        {
          "id": "google_merchant_center_api_regional_inventories",
          "domain": "Observation",
          "purpose": "Regional inventory observations.",
          "systems": [
            "google_merchant_center"
          ]
        },
        {
          "id": "google_merchant_center_api_promotions",
          "domain": "Observation",
          "purpose": "Promotion observations.",
          "systems": [
            "google_merchant_center"
          ]
        },
        {
          "id": "google_merchant_center_api_performance_report",
          "domain": "Observation",
          "purpose": "Shopping performance observations.",
          "systems": [
            "google_merchant_center"
          ]
        },
        {
          "id": "google_merchant_center_api_competitive_visibility",
          "domain": "Observation",
          "purpose": "Competitive visibility observations.",
          "systems": [
            "google_merchant_center"
          ]
        },
        {
          "id": "google_merchant_center_api_conversion_sources",
          "domain": "Observation",
          "purpose": "Conversion source observations.",
          "systems": [
            "google_merchant_center"
          ]
        },
        {
          "id": "google_merchant_center_api_programs",
          "domain": "Observation",
          "purpose": "Shopping program observations.",
          "systems": [
            "google_merchant_center"
          ]
        },
        {
          "id": "google_merchant_center_api_return_policies",
          "domain": "Observation",
          "purpose": "Return policy observations.",
          "systems": [
            "google_merchant_center"
          ]
        },
        {
          "id": "google_merchant_center_api_shipping_settings",
          "domain": "Observation",
          "purpose": "Shipping settings observations.",
          "systems": [
            "google_merchant_center"
          ]
        },
        {
          "id": "google_merchant_center_api_product_reviews",
          "domain": "Observation",
          "purpose": "Product review observations.",
          "systems": [
            "google_merchant_center"
          ]
        },
        {
          "id": "google_merchant_center_api_merchant_reviews",
          "domain": "Observation",
          "purpose": "Merchant review observations.",
          "systems": [
            "google_merchant_center"
          ]
        },
        {
          "id": "google_merchant_center_agent_api_product_input_updates",
          "domain": "Commitment workflow",
          "purpose": "Governed product input updates.",
          "systems": [
            "google_merchant_center"
          ]
        },
        {
          "id": "google_merchant_center_agent_api_inventory_updates",
          "domain": "Commitment workflow",
          "purpose": "Governed inventory updates.",
          "systems": [
            "google_merchant_center"
          ]
        },
        {
          "id": "google_merchant_center_agent_api_promotion_updates",
          "domain": "Commitment workflow",
          "purpose": "Governed promotion updates.",
          "systems": [
            "google_merchant_center"
          ]
        },
        {
          "id": "google_merchant_center_agent_api_data_source_updates",
          "domain": "Commitment workflow",
          "purpose": "Governed data source updates.",
          "systems": [
            "google_merchant_center"
          ]
        }
      ],
      "createSpecPayloads": [
        {
          "specName": "google_merchant_center_api_accounts",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "merchant_account_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Account display name",
                "name": "account_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Account type",
                "name": "account_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Parent merchant account id",
                "name": "parent_account_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Merchant account observations for account identity, type, relationship, and operational status.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Merchant Center API accounts",
              "spec_name": "google_merchant_center_api_accounts"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_merchant_center_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"merchant_account_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Account display name\",\n      \"name\": \"account_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Account type\",\n      \"name\": \"account_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Parent merchant account id\",\n      \"name\": \"parent_account_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Merchant account observations for account identity, type, relationship, and operational status.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Merchant Center API accounts\",\n    \"spec_name\": \"google_merchant_center_api_accounts\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_merchant_center_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_merchant_center"
          ]
        },
        {
          "specName": "google_merchant_center_api_account_issues",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "account_issue_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Merchant account id",
                "name": "merchant_account_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Issue type",
                "name": "issue_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Issue severity",
                "name": "severity",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Affected destination",
                "name": "destination",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Account issue observations for policy, setup, verification, and account-health review.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Merchant Center API account issues",
              "spec_name": "google_merchant_center_api_account_issues"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_merchant_center_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"account_issue_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Merchant account id\",\n      \"name\": \"merchant_account_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Issue type\",\n      \"name\": \"issue_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Issue severity\",\n      \"name\": \"severity\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Affected destination\",\n      \"name\": \"destination\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Account issue observations for policy, setup, verification, and account-health review.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Merchant Center API account issues\",\n    \"spec_name\": \"google_merchant_center_api_account_issues\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_merchant_center_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_merchant_center"
          ]
        },
        {
          "specName": "google_merchant_center_api_products",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "product_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Merchant account id",
                "name": "merchant_account_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Offer id",
                "name": "offer_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Product title",
                "name": "title",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Content language",
                "name": "content_language",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Feed label",
                "name": "feed_label",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Availability",
                "name": "availability",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Price amount",
                "name": "price_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency code",
                "name": "currency_code",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Processed product observations for final catalog state, destinations, approval, and item visibility.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Merchant Center API products",
              "spec_name": "google_merchant_center_api_products"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_merchant_center_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"product_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Merchant account id\",\n      \"name\": \"merchant_account_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Offer id\",\n      \"name\": \"offer_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Product title\",\n      \"name\": \"title\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Content language\",\n      \"name\": \"content_language\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Feed label\",\n      \"name\": \"feed_label\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Availability\",\n      \"name\": \"availability\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Price amount\",\n      \"name\": \"price_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency code\",\n      \"name\": \"currency_code\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Processed product observations for final catalog state, destinations, approval, and item visibility.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Merchant Center API products\",\n    \"spec_name\": \"google_merchant_center_api_products\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_merchant_center_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_merchant_center"
          ]
        },
        {
          "specName": "google_merchant_center_api_product_inputs",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "product_input_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Merchant account id",
                "name": "merchant_account_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Data source id",
                "name": "data_source_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Offer id",
                "name": "offer_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Channel",
                "name": "channel",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Content language",
                "name": "content_language",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Feed label",
                "name": "feed_label",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Submitted product input observations for primary and supplemental product data before processing.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Merchant Center API product inputs",
              "spec_name": "google_merchant_center_api_product_inputs"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_merchant_center_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"product_input_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Merchant account id\",\n      \"name\": \"merchant_account_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Data source id\",\n      \"name\": \"data_source_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Offer id\",\n      \"name\": \"offer_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Channel\",\n      \"name\": \"channel\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Content language\",\n      \"name\": \"content_language\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Feed label\",\n      \"name\": \"feed_label\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Submitted product input observations for primary and supplemental product data before processing.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Merchant Center API product inputs\",\n    \"spec_name\": \"google_merchant_center_api_product_inputs\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_merchant_center_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_merchant_center"
          ]
        },
        {
          "specName": "google_merchant_center_api_product_issues",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "product_issue_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Merchant account id",
                "name": "merchant_account_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Product id",
                "name": "product_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Issue type",
                "name": "issue_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Issue severity",
                "name": "severity",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Affected destination",
                "name": "destination",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Product issue observations for disapprovals, warnings, destination impacts, and remediation queues.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Merchant Center API product issues",
              "spec_name": "google_merchant_center_api_product_issues"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_merchant_center_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"product_issue_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Merchant account id\",\n      \"name\": \"merchant_account_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Product id\",\n      \"name\": \"product_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Issue type\",\n      \"name\": \"issue_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Issue severity\",\n      \"name\": \"severity\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Affected destination\",\n      \"name\": \"destination\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Product issue observations for disapprovals, warnings, destination impacts, and remediation queues.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Merchant Center API product issues\",\n    \"spec_name\": \"google_merchant_center_api_product_issues\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_merchant_center_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_merchant_center"
          ]
        },
        {
          "specName": "google_merchant_center_api_data_sources",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "data_source_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Merchant account id",
                "name": "merchant_account_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Data source display name",
                "name": "display_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Input type",
                "name": "input",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Data source type",
                "name": "data_source_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Feed label",
                "name": "feed_label",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Content language",
                "name": "content_language",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Data source observations for product, inventory, promotion, review, and feed configuration.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Merchant Center API data sources",
              "spec_name": "google_merchant_center_api_data_sources"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_merchant_center_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"data_source_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Merchant account id\",\n      \"name\": \"merchant_account_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Data source display name\",\n      \"name\": \"display_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Input type\",\n      \"name\": \"input\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Data source type\",\n      \"name\": \"data_source_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Feed label\",\n      \"name\": \"feed_label\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Content language\",\n      \"name\": \"content_language\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Data source observations for product, inventory, promotion, review, and feed configuration.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Merchant Center API data sources\",\n    \"spec_name\": \"google_merchant_center_api_data_sources\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_merchant_center_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_merchant_center"
          ]
        },
        {
          "specName": "google_merchant_center_api_file_uploads",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "file_upload_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Merchant account id",
                "name": "merchant_account_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Data source id",
                "name": "data_source_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Processing state",
                "name": "processing_state",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Total item count",
                "name": "items_total",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Failed item count",
                "name": "items_failed",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Data source file upload observations for processing status, failures, and freshness review.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Merchant Center API file uploads",
              "spec_name": "google_merchant_center_api_file_uploads"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_merchant_center_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"file_upload_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Merchant account id\",\n      \"name\": \"merchant_account_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Data source id\",\n      \"name\": \"data_source_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Processing state\",\n      \"name\": \"processing_state\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Total item count\",\n      \"name\": \"items_total\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Failed item count\",\n      \"name\": \"items_failed\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Data source file upload observations for processing status, failures, and freshness review.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Merchant Center API file uploads\",\n    \"spec_name\": \"google_merchant_center_api_file_uploads\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_merchant_center_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_merchant_center"
          ]
        },
        {
          "specName": "google_merchant_center_api_local_inventories",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "local_inventory_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Merchant account id",
                "name": "merchant_account_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Product id",
                "name": "product_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Store code",
                "name": "store_code",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Availability",
                "name": "availability",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Price amount",
                "name": "price_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Local inventory observations for store-level item availability, price, pickup, and quantity.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Merchant Center API local inventories",
              "spec_name": "google_merchant_center_api_local_inventories"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_merchant_center_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"local_inventory_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Merchant account id\",\n      \"name\": \"merchant_account_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Product id\",\n      \"name\": \"product_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Store code\",\n      \"name\": \"store_code\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Availability\",\n      \"name\": \"availability\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Price amount\",\n      \"name\": \"price_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Local inventory observations for store-level item availability, price, pickup, and quantity.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Merchant Center API local inventories\",\n    \"spec_name\": \"google_merchant_center_api_local_inventories\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_merchant_center_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_merchant_center"
          ]
        },
        {
          "specName": "google_merchant_center_api_regional_inventories",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "regional_inventory_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Merchant account id",
                "name": "merchant_account_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Product id",
                "name": "product_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Region id",
                "name": "region_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Availability",
                "name": "availability",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Price amount",
                "name": "price_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Regional inventory observations for regional availability, price, and shipping visibility.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Merchant Center API regional inventories",
              "spec_name": "google_merchant_center_api_regional_inventories"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_merchant_center_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"regional_inventory_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Merchant account id\",\n      \"name\": \"merchant_account_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Product id\",\n      \"name\": \"product_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Region id\",\n      \"name\": \"region_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Availability\",\n      \"name\": \"availability\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Price amount\",\n      \"name\": \"price_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Regional inventory observations for regional availability, price, and shipping visibility.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Merchant Center API regional inventories\",\n    \"spec_name\": \"google_merchant_center_api_regional_inventories\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_merchant_center_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_merchant_center"
          ]
        },
        {
          "specName": "google_merchant_center_api_promotions",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "promotion_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Merchant account id",
                "name": "merchant_account_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Promotion title",
                "name": "promotion_title",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Coupon value type",
                "name": "coupon_value_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Start time",
                "name": "start_time",
                "tests": [],
                "type": "string"
              },
              {
                "description": "End time",
                "name": "end_time",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Promotion status",
                "name": "promotion_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Promotion observations for offer eligibility, dates, codes, destinations, and approval state.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Merchant Center API promotions",
              "spec_name": "google_merchant_center_api_promotions"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_merchant_center_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"promotion_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Merchant account id\",\n      \"name\": \"merchant_account_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Promotion title\",\n      \"name\": \"promotion_title\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Coupon value type\",\n      \"name\": \"coupon_value_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Start time\",\n      \"name\": \"start_time\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"End time\",\n      \"name\": \"end_time\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Promotion status\",\n      \"name\": \"promotion_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Promotion observations for offer eligibility, dates, codes, destinations, and approval state.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Merchant Center API promotions\",\n    \"spec_name\": \"google_merchant_center_api_promotions\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_merchant_center_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_merchant_center"
          ]
        },
        {
          "specName": "google_merchant_center_api_performance_report",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "merchant_performance_report_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Merchant account id",
                "name": "merchant_account_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Report date",
                "name": "date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Product id",
                "name": "product_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Clicks",
                "name": "clicks",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Impressions",
                "name": "impressions",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Click-through rate",
                "name": "ctr",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Conversion value",
                "name": "conversion_value",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Shopping performance observations for impressions, clicks, CTR, conversions, and revenue by item or date.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Merchant Center API performance report",
              "spec_name": "google_merchant_center_api_performance_report"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_merchant_center_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"merchant_performance_report_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Merchant account id\",\n      \"name\": \"merchant_account_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Report date\",\n      \"name\": \"date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Product id\",\n      \"name\": \"product_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Clicks\",\n      \"name\": \"clicks\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Impressions\",\n      \"name\": \"impressions\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Click-through rate\",\n      \"name\": \"ctr\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Conversion value\",\n      \"name\": \"conversion_value\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Shopping performance observations for impressions, clicks, CTR, conversions, and revenue by item or date.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Merchant Center API performance report\",\n    \"spec_name\": \"google_merchant_center_api_performance_report\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_merchant_center_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_merchant_center"
          ]
        },
        {
          "specName": "google_merchant_center_api_competitive_visibility",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "competitive_visibility_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Merchant account id",
                "name": "merchant_account_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Report date",
                "name": "date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Category",
                "name": "category",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Brand",
                "name": "brand",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Price benchmark amount",
                "name": "price_benchmark_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Competitive visibility observations for category, brand, price, and benchmark review.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Merchant Center API competitive visibility",
              "spec_name": "google_merchant_center_api_competitive_visibility"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_merchant_center_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"competitive_visibility_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Merchant account id\",\n      \"name\": \"merchant_account_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Report date\",\n      \"name\": \"date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Category\",\n      \"name\": \"category\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Brand\",\n      \"name\": \"brand\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Price benchmark amount\",\n      \"name\": \"price_benchmark_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Competitive visibility observations for category, brand, price, and benchmark review.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Merchant Center API competitive visibility\",\n    \"spec_name\": \"google_merchant_center_api_competitive_visibility\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_merchant_center_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_merchant_center"
          ]
        },
        {
          "specName": "google_merchant_center_api_conversion_sources",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "conversion_source_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Merchant account id",
                "name": "merchant_account_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Conversion source name",
                "name": "conversion_source_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Source type",
                "name": "source_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Source state",
                "name": "state",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Conversion source observations for Merchant Center measurement configuration.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Merchant Center API conversion sources",
              "spec_name": "google_merchant_center_api_conversion_sources"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_merchant_center_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"conversion_source_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Merchant account id\",\n      \"name\": \"merchant_account_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Conversion source name\",\n      \"name\": \"conversion_source_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Source type\",\n      \"name\": \"source_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Source state\",\n      \"name\": \"state\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Conversion source observations for Merchant Center measurement configuration.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Merchant Center API conversion sources\",\n    \"spec_name\": \"google_merchant_center_api_conversion_sources\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_merchant_center_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_merchant_center"
          ]
        },
        {
          "specName": "google_merchant_center_api_programs",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "program_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Merchant account id",
                "name": "merchant_account_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Program name",
                "name": "program_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Participation state",
                "name": "participation_state",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Region code",
                "name": "region_code",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Shopping program observations for enabled destinations and participation status.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Merchant Center API programs",
              "spec_name": "google_merchant_center_api_programs"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_merchant_center_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"program_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Merchant account id\",\n      \"name\": \"merchant_account_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Program name\",\n      \"name\": \"program_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Participation state\",\n      \"name\": \"participation_state\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Region code\",\n      \"name\": \"region_code\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Shopping program observations for enabled destinations and participation status.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Merchant Center API programs\",\n    \"spec_name\": \"google_merchant_center_api_programs\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_merchant_center_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_merchant_center"
          ]
        },
        {
          "specName": "google_merchant_center_api_return_policies",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "return_policy_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Merchant account id",
                "name": "merchant_account_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Policy name",
                "name": "policy_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Country code",
                "name": "country_code",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Return window days",
                "name": "return_window_days",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Return method",
                "name": "return_method",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Return policy observations for online return windows, fees, countries, and policy lifecycle.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Merchant Center API return policies",
              "spec_name": "google_merchant_center_api_return_policies"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_merchant_center_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"return_policy_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Merchant account id\",\n      \"name\": \"merchant_account_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Policy name\",\n      \"name\": \"policy_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Country code\",\n      \"name\": \"country_code\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Return window days\",\n      \"name\": \"return_window_days\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Return method\",\n      \"name\": \"return_method\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Return policy observations for online return windows, fees, countries, and policy lifecycle.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Merchant Center API return policies\",\n    \"spec_name\": \"google_merchant_center_api_return_policies\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_merchant_center_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_merchant_center"
          ]
        },
        {
          "specName": "google_merchant_center_api_shipping_settings",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "shipping_setting_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Merchant account id",
                "name": "merchant_account_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Service name",
                "name": "service_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Country code",
                "name": "country_code",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Currency code",
                "name": "currency_code",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Active flag",
                "name": "active",
                "tests": [],
                "type": "boolean"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Shipping settings observations for service coverage, rates, countries, and delivery promises.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Merchant Center API shipping settings",
              "spec_name": "google_merchant_center_api_shipping_settings"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_merchant_center_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"shipping_setting_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Merchant account id\",\n      \"name\": \"merchant_account_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Service name\",\n      \"name\": \"service_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Country code\",\n      \"name\": \"country_code\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Currency code\",\n      \"name\": \"currency_code\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Active flag\",\n      \"name\": \"active\",\n      \"tests\": [],\n      \"type\": \"boolean\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Shipping settings observations for service coverage, rates, countries, and delivery promises.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Merchant Center API shipping settings\",\n    \"spec_name\": \"google_merchant_center_api_shipping_settings\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_merchant_center_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_merchant_center"
          ]
        },
        {
          "specName": "google_merchant_center_api_product_reviews",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "product_review_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Merchant account id",
                "name": "merchant_account_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Product id",
                "name": "product_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed review reference",
                "name": "review_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Rating",
                "name": "rating",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Review state",
                "name": "review_state",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Product review observations for product ratings, review state, and item-level evidence.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Merchant Center API product reviews",
              "spec_name": "google_merchant_center_api_product_reviews"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_merchant_center_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"product_review_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Merchant account id\",\n      \"name\": \"merchant_account_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Product id\",\n      \"name\": \"product_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed review reference\",\n      \"name\": \"review_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Rating\",\n      \"name\": \"rating\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Review state\",\n      \"name\": \"review_state\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Product review observations for product ratings, review state, and item-level evidence.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Merchant Center API product reviews\",\n    \"spec_name\": \"google_merchant_center_api_product_reviews\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_merchant_center_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_merchant_center"
          ]
        },
        {
          "specName": "google_merchant_center_api_merchant_reviews",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "merchant_review_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Merchant account id",
                "name": "merchant_account_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Hashed review reference",
                "name": "review_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Rating",
                "name": "rating",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Review state",
                "name": "review_state",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Merchant review observations for store ratings, review state, and reputation review.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Merchant Center API merchant reviews",
              "spec_name": "google_merchant_center_api_merchant_reviews"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_merchant_center_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"merchant_review_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Merchant account id\",\n      \"name\": \"merchant_account_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed review reference\",\n      \"name\": \"review_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Rating\",\n      \"name\": \"rating\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Review state\",\n      \"name\": \"review_state\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Merchant review observations for store ratings, review state, and reputation review.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Merchant Center API merchant reviews\",\n    \"spec_name\": \"google_merchant_center_api_merchant_reviews\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_merchant_center_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_merchant_center"
          ]
        },
        {
          "specName": "google_merchant_center_agent_api_product_input_updates",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "product_input_update_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "product_input_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Merchant account id",
                "name": "merchant_account_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Offer id",
                "name": "offer_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Data source id",
                "name": "data_source_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Proposed title",
                "name": "proposed_title",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Proposed availability",
                "name": "proposed_availability",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Proposed price amount",
                "name": "proposed_price_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed product input update proposals before outbound Merchant Center sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Merchant Center agent API product input updates",
              "spec_name": "google_merchant_center_agent_api_product_input_updates",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_merchant_center_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"product_input_update_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"product_input_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Merchant account id\",\n      \"name\": \"merchant_account_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Offer id\",\n      \"name\": \"offer_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Data source id\",\n      \"name\": \"data_source_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Proposed title\",\n      \"name\": \"proposed_title\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Proposed availability\",\n      \"name\": \"proposed_availability\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Proposed price amount\",\n      \"name\": \"proposed_price_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed product input update proposals before outbound Merchant Center sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Merchant Center agent API product input updates\",\n    \"spec_name\": \"google_merchant_center_agent_api_product_input_updates\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_merchant_center_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_merchant_center"
          ]
        },
        {
          "specName": "google_merchant_center_agent_api_inventory_updates",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "inventory_update_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "inventory_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Merchant account id",
                "name": "merchant_account_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Product id",
                "name": "product_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Local or regional",
                "name": "inventory_scope",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Store or region id",
                "name": "location_or_region_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Proposed availability",
                "name": "proposed_availability",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Proposed price amount",
                "name": "proposed_price_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed local or regional inventory update proposals before outbound Merchant Center sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Merchant Center agent API inventory updates",
              "spec_name": "google_merchant_center_agent_api_inventory_updates",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_merchant_center_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"inventory_update_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"inventory_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Merchant account id\",\n      \"name\": \"merchant_account_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Product id\",\n      \"name\": \"product_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Local or regional\",\n      \"name\": \"inventory_scope\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Store or region id\",\n      \"name\": \"location_or_region_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Proposed availability\",\n      \"name\": \"proposed_availability\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Proposed price amount\",\n      \"name\": \"proposed_price_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed local or regional inventory update proposals before outbound Merchant Center sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Merchant Center agent API inventory updates\",\n    \"spec_name\": \"google_merchant_center_agent_api_inventory_updates\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_merchant_center_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_merchant_center"
          ]
        },
        {
          "specName": "google_merchant_center_agent_api_promotion_updates",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "promotion_update_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "promotion_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Merchant account id",
                "name": "merchant_account_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Promotion title",
                "name": "promotion_title",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Start time",
                "name": "start_time",
                "tests": [],
                "type": "string"
              },
              {
                "description": "End time",
                "name": "end_time",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Promotion status",
                "name": "promotion_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed promotion create/update proposals before outbound Merchant Center sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Merchant Center agent API promotion updates",
              "spec_name": "google_merchant_center_agent_api_promotion_updates",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_merchant_center_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"promotion_update_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"promotion_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Merchant account id\",\n      \"name\": \"merchant_account_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Promotion title\",\n      \"name\": \"promotion_title\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Start time\",\n      \"name\": \"start_time\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"End time\",\n      \"name\": \"end_time\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Promotion status\",\n      \"name\": \"promotion_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed promotion create/update proposals before outbound Merchant Center sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Merchant Center agent API promotion updates\",\n    \"spec_name\": \"google_merchant_center_agent_api_promotion_updates\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_merchant_center_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_merchant_center"
          ]
        },
        {
          "specName": "google_merchant_center_agent_api_data_source_updates",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "data_source_update_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "data_source_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Merchant account id",
                "name": "merchant_account_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Display name",
                "name": "display_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Data source type",
                "name": "data_source_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Proposed state",
                "name": "proposed_state",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed data source configuration proposals before outbound Merchant Center sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Merchant Center agent API data source updates",
              "spec_name": "google_merchant_center_agent_api_data_source_updates",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_merchant_center_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"data_source_update_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"data_source_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Merchant account id\",\n      \"name\": \"merchant_account_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Display name\",\n      \"name\": \"display_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Data source type\",\n      \"name\": \"data_source_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Proposed state\",\n      \"name\": \"proposed_state\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed data source configuration proposals before outbound Merchant Center sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Merchant Center agent API data source updates\",\n    \"spec_name\": \"google_merchant_center_agent_api_data_source_updates\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_merchant_center_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_merchant_center"
          ]
        }
      ]
    },
    {
      "id": "google_search_console_visibility_library",
      "type": "collection",
      "domains": [
        "marketing",
        "operations"
      ],
      "systems": [
        "google_search_console"
      ],
      "version": "1.0.0",
      "summary": "Google Search Console specs for site properties, search analytics, URL inspection results, sitemap submissions, page indexing findings, enhancement findings, search performance opportunities, and governed inspection/submission requests.",
      "coverageStatus": "Core",
      "coverageNotes": "Covers common Search Console API and agent-derived search visibility objects for organic search review, indexing triage, and page opportunity tracking. It does not mirror every Search Console UI report, raw query text, raw page URLs, or unsupported crawl diagnostics.",
      "sourceDocs": [
        {
          "label": "Search Analytics query",
          "url": "https://developers.google.com/webmaster-tools/v1/searchanalytics/query"
        },
        {
          "label": "Search Console sites resource",
          "url": "https://developers.google.com/webmaster-tools/v1/sites"
        },
        {
          "label": "URL Inspection API inspect method",
          "url": "https://developers.google.com/webmaster-tools/v1/urlInspection.index/inspect"
        }
      ],
      "nextObjects": [
        "rich_result_type_details",
        "video_indexing_findings",
        "page_experience_findings",
        "removal_requests",
        "manual_actions",
        "mobile_usability_findings"
      ],
      "omittedObjects": [
        "OAuth/token management",
        "raw search queries",
        "raw page URLs",
        "complete Search Console UI-only report state",
        "crawler log ingestion"
      ],
      "needs": [
        "A Google Search Console agent/operator role. The generated calls use google_search_console_agent."
      ],
      "usefulFor": [
        "Organic search performance memory",
        "Indexing triage",
        "Search visibility opportunities",
        "Content update planning",
        "Site health follow-up"
      ],
      "extendWith": [
        "Links from page indexing findings into ops_issues",
        "Links from Search Console page observations into GA4 page reports",
        "Links from Merchant Center product issues into Search Console URL inspection requests"
      ],
      "searchTerms": [
        "google search console",
        "search analytics",
        "organic search",
        "queries",
        "pages",
        "url inspection",
        "indexing",
        "sitemaps",
        "enhancements",
        "search performance"
      ],
      "links": [
        {
          "from": "google_search_console_agent_api_sitemap_submission_requests",
          "to": "google_search_console_api_sites",
          "kind": "source_link",
          "description": "Sitemap submission requests cite the target site property observation."
        },
        {
          "from": "google_search_console_agent_api_url_inspection_requests",
          "to": "google_search_console_api_sites",
          "kind": "source_link",
          "description": "URL inspection requests cite the target site property observation."
        },
        {
          "from": "google_search_console_agent_api_url_inspection_requests",
          "to": "google_search_console_api_page_indexing_findings",
          "kind": "source_link",
          "description": "URL inspection requests can cite page indexing findings that triggered the inspection."
        }
      ],
      "installedSpecs": [
        {
          "id": "google_search_console_api_sites",
          "domain": "Observation",
          "purpose": "Search Console site observations.",
          "systems": [
            "google_search_console"
          ]
        },
        {
          "id": "google_search_console_api_search_analytics",
          "domain": "Observation",
          "purpose": "Search analytics observations.",
          "systems": [
            "google_search_console"
          ]
        },
        {
          "id": "google_search_console_api_url_inspection_results",
          "domain": "Observation",
          "purpose": "URL inspection result observations.",
          "systems": [
            "google_search_console"
          ]
        },
        {
          "id": "google_search_console_api_sitemap_submissions",
          "domain": "Observation",
          "purpose": "Sitemap submission observations.",
          "systems": [
            "google_search_console"
          ]
        },
        {
          "id": "google_search_console_api_page_indexing_findings",
          "domain": "Observation",
          "purpose": "Page indexing finding observations.",
          "systems": [
            "google_search_console"
          ]
        },
        {
          "id": "google_search_console_api_enhancement_findings",
          "domain": "Observation",
          "purpose": "Enhancement finding observations.",
          "systems": [
            "google_search_console"
          ]
        },
        {
          "id": "google_search_console_api_search_performance_opportunities",
          "domain": "Observation",
          "purpose": "Search performance opportunity observations.",
          "systems": [
            "google_search_console"
          ]
        },
        {
          "id": "google_search_console_agent_api_sitemap_submission_requests",
          "domain": "Commitment workflow",
          "purpose": "Governed sitemap submission requests.",
          "systems": [
            "google_search_console"
          ]
        },
        {
          "id": "google_search_console_agent_api_url_inspection_requests",
          "domain": "Commitment workflow",
          "purpose": "Governed URL inspection requests.",
          "systems": [
            "google_search_console"
          ]
        }
      ],
      "createSpecPayloads": [
        {
          "specName": "google_search_console_api_sites",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "site_url_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed site URL or property token",
                "name": "site_url_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Permission level",
                "name": "permission_level",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Search Console property observations for site ownership, permission level, and search visibility scope.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Search Console API sites",
              "spec_name": "google_search_console_api_sites"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_search_console_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"site_url_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed site URL or property token\",\n      \"name\": \"site_url_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Permission level\",\n      \"name\": \"permission_level\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Search Console property observations for site ownership, permission level, and search visibility scope.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Search Console API sites\",\n    \"spec_name\": \"google_search_console_api_sites\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_search_console_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_search_console"
          ]
        },
        {
          "specName": "google_search_console_api_search_analytics",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "search_analytics_report_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Site URL id",
                "name": "site_url_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Report date",
                "name": "date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed query text",
                "name": "query_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed page URL",
                "name": "page_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Country",
                "name": "country",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Device",
                "name": "device",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Clicks",
                "name": "clicks",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Impressions",
                "name": "impressions",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Click-through rate",
                "name": "ctr",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Average position",
                "name": "position",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Search analytics observations for queries, pages, countries, devices, clicks, impressions, CTR, and position.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Search Console API search analytics",
              "spec_name": "google_search_console_api_search_analytics"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_search_console_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"search_analytics_report_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Site URL id\",\n      \"name\": \"site_url_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Report date\",\n      \"name\": \"date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed query text\",\n      \"name\": \"query_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed page URL\",\n      \"name\": \"page_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Country\",\n      \"name\": \"country\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Device\",\n      \"name\": \"device\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Clicks\",\n      \"name\": \"clicks\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Impressions\",\n      \"name\": \"impressions\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Click-through rate\",\n      \"name\": \"ctr\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Average position\",\n      \"name\": \"position\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Search analytics observations for queries, pages, countries, devices, clicks, impressions, CTR, and position.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Search Console API search analytics\",\n    \"spec_name\": \"google_search_console_api_search_analytics\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_search_console_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_search_console"
          ]
        },
        {
          "specName": "google_search_console_api_url_inspection_results",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "url_inspection_result_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Site URL id",
                "name": "site_url_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Hashed inspected URL",
                "name": "inspected_url_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Inspection timestamp",
                "name": "inspection_time",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Index status",
                "name": "index_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Coverage state",
                "name": "coverage_state",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed Google-selected canonical URL",
                "name": "google_canonical_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "URL inspection observations for index status, coverage state, canonical signals, and rich result review.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Search Console API URL inspection results",
              "spec_name": "google_search_console_api_url_inspection_results"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_search_console_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"url_inspection_result_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Site URL id\",\n      \"name\": \"site_url_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed inspected URL\",\n      \"name\": \"inspected_url_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Inspection timestamp\",\n      \"name\": \"inspection_time\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Index status\",\n      \"name\": \"index_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Coverage state\",\n      \"name\": \"coverage_state\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed Google-selected canonical URL\",\n      \"name\": \"google_canonical_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"URL inspection observations for index status, coverage state, canonical signals, and rich result review.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Search Console API URL inspection results\",\n    \"spec_name\": \"google_search_console_api_url_inspection_results\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_search_console_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_search_console"
          ]
        },
        {
          "specName": "google_search_console_api_sitemap_submissions",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "sitemap_submission_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Site URL id",
                "name": "site_url_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Hashed sitemap URL",
                "name": "sitemap_url_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Submission timestamp",
                "name": "submitted_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Last downloaded timestamp",
                "name": "last_downloaded_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Warning count",
                "name": "warnings",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Error count",
                "name": "errors",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Sitemap submission observations for submitted sitemap URLs, last submitted time, and processing state.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Search Console API sitemap submissions",
              "spec_name": "google_search_console_api_sitemap_submissions"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_search_console_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"sitemap_submission_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Site URL id\",\n      \"name\": \"site_url_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed sitemap URL\",\n      \"name\": \"sitemap_url_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Submission timestamp\",\n      \"name\": \"submitted_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Last downloaded timestamp\",\n      \"name\": \"last_downloaded_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Warning count\",\n      \"name\": \"warnings\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Error count\",\n      \"name\": \"errors\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Sitemap submission observations for submitted sitemap URLs, last submitted time, and processing state.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Search Console API sitemap submissions\",\n    \"spec_name\": \"google_search_console_api_sitemap_submissions\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_search_console_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_search_console"
          ]
        },
        {
          "specName": "google_search_console_api_page_indexing_findings",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "page_indexing_finding_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Site URL id",
                "name": "site_url_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Issue type",
                "name": "issue_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed page URL",
                "name": "page_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Validation state",
                "name": "validation_state",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Affected page count",
                "name": "affected_page_count",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Page indexing finding observations for affected pages, issue groups, and remediation queues.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Search Console API page indexing findings",
              "spec_name": "google_search_console_api_page_indexing_findings"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_search_console_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"page_indexing_finding_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Site URL id\",\n      \"name\": \"site_url_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Issue type\",\n      \"name\": \"issue_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed page URL\",\n      \"name\": \"page_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Validation state\",\n      \"name\": \"validation_state\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Affected page count\",\n      \"name\": \"affected_page_count\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Page indexing finding observations for affected pages, issue groups, and remediation queues.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Search Console API page indexing findings\",\n    \"spec_name\": \"google_search_console_api_page_indexing_findings\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_search_console_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_search_console"
          ]
        },
        {
          "specName": "google_search_console_api_enhancement_findings",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "enhancement_finding_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Site URL id",
                "name": "site_url_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Enhancement type",
                "name": "enhancement_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Issue type",
                "name": "issue_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Validation state",
                "name": "validation_state",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Affected page count",
                "name": "affected_page_count",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Enhancement finding observations for structured data, page experience, and rich result eligibility review.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Search Console API enhancement findings",
              "spec_name": "google_search_console_api_enhancement_findings"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_search_console_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"enhancement_finding_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Site URL id\",\n      \"name\": \"site_url_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Enhancement type\",\n      \"name\": \"enhancement_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Issue type\",\n      \"name\": \"issue_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Validation state\",\n      \"name\": \"validation_state\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Affected page count\",\n      \"name\": \"affected_page_count\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Enhancement finding observations for structured data, page experience, and rich result eligibility review.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Search Console API enhancement findings\",\n    \"spec_name\": \"google_search_console_api_enhancement_findings\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_search_console_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_search_console"
          ]
        },
        {
          "specName": "google_search_console_api_search_performance_opportunities",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "search_performance_opportunity_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Site URL id",
                "name": "site_url_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Opportunity type",
                "name": "opportunity_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed query text",
                "name": "query_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed page URL",
                "name": "page_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Impression delta",
                "name": "impression_delta",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Click delta",
                "name": "click_delta",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Search performance opportunity observations for pages or queries with changing clicks, impressions, CTR, or position.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Search Console API search performance opportunities",
              "spec_name": "google_search_console_api_search_performance_opportunities"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_search_console_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"search_performance_opportunity_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Site URL id\",\n      \"name\": \"site_url_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Opportunity type\",\n      \"name\": \"opportunity_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed query text\",\n      \"name\": \"query_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed page URL\",\n      \"name\": \"page_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Impression delta\",\n      \"name\": \"impression_delta\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Click delta\",\n      \"name\": \"click_delta\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Search performance opportunity observations for pages or queries with changing clicks, impressions, CTR, or position.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Search Console API search performance opportunities\",\n    \"spec_name\": \"google_search_console_api_search_performance_opportunities\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_search_console_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_search_console"
          ]
        },
        {
          "specName": "google_search_console_agent_api_sitemap_submission_requests",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "sitemap_submission_request_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "site_url_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Hashed sitemap URL",
                "name": "sitemap_url_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Submission reason",
                "name": "submission_reason",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed sitemap submission requests before outbound Search Console sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Search Console agent API sitemap submission requests",
              "spec_name": "google_search_console_agent_api_sitemap_submission_requests",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_search_console_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"sitemap_submission_request_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"site_url_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed sitemap URL\",\n      \"name\": \"sitemap_url_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Submission reason\",\n      \"name\": \"submission_reason\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed sitemap submission requests before outbound Search Console sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Search Console agent API sitemap submission requests\",\n    \"spec_name\": \"google_search_console_agent_api_sitemap_submission_requests\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_search_console_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_search_console"
          ]
        },
        {
          "specName": "google_search_console_agent_api_url_inspection_requests",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "url_inspection_request_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "site_url_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Hashed inspected URL",
                "name": "inspected_url_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Inspection reason",
                "name": "inspection_reason",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Inspection priority",
                "name": "priority",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed URL inspection requests before an agent asks Search Console for fresh inspection results.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Search Console agent API URL inspection requests",
              "spec_name": "google_search_console_agent_api_url_inspection_requests",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_search_console_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"url_inspection_request_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"site_url_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed inspected URL\",\n      \"name\": \"inspected_url_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Inspection reason\",\n      \"name\": \"inspection_reason\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Inspection priority\",\n      \"name\": \"priority\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed URL inspection requests before an agent asks Search Console for fresh inspection results.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Search Console agent API URL inspection requests\",\n    \"spec_name\": \"google_search_console_agent_api_url_inspection_requests\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_search_console_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_search_console"
          ]
        }
      ]
    },
    {
      "id": "google_business_profile_local_library",
      "type": "collection",
      "domains": [
        "marketing",
        "operations"
      ],
      "systems": [
        "google_business_profile"
      ],
      "version": "1.0.0",
      "summary": "Google Business Profile specs for accounts, locations, location insights, reviews, local posts, media, questions, answers, categories, attributes, verifications, notifications, and governed local profile updates.",
      "coverageStatus": "Core",
      "coverageNotes": "Covers common Business Profile API resources for local listings, reviews, posts, media, Q&A, verification, and location performance. It does not model public scraping, broad account access administration, raw reviewer details, or every specialized location attribute.",
      "sourceDocs": [
        {
          "label": "Google Business Profile API reference",
          "url": "https://developers.google.com/my-business/reference/rest"
        },
        {
          "label": "Business Profile API usage help",
          "url": "https://support.google.com/business/answer/6333473"
        }
      ],
      "nextObjects": [
        "food_menus",
        "service_lists",
        "booking_links",
        "health_provider_attributes",
        "insurance_networks",
        "customer_media_review",
        "bulk_location_quality"
      ],
      "omittedObjects": [
        "OAuth/token management",
        "raw reviewer PII",
        "public-only profile scraping",
        "complete admin invitation flows",
        "every category-specific attribute"
      ],
      "needs": [
        "A Google Business Profile agent/operator role. The generated calls use google_business_profile_agent."
      ],
      "usefulFor": [
        "Local listing memory",
        "Review response workflow",
        "Location performance reporting",
        "Local post governance",
        "Multi-location operations follow-up"
      ],
      "extendWith": [
        "Links from location insights into local post proposals",
        "Links from reviews into review reply proposals",
        "Links from Search Console and GA4 local landing-page observations into location updates"
      ],
      "searchTerms": [
        "google business profile",
        "google my business",
        "local listings",
        "locations",
        "reviews",
        "review replies",
        "local posts",
        "media",
        "questions",
        "answers",
        "location insights",
        "verification"
      ],
      "links": [
        {
          "from": "google_business_profile_agent_api_location_updates",
          "to": "google_business_profile_api_locations",
          "kind": "source_link",
          "description": "Location update proposals cite current location observations."
        },
        {
          "from": "google_business_profile_agent_api_review_replies",
          "to": "google_business_profile_api_reviews",
          "kind": "source_link",
          "description": "Review reply proposals cite the review observation."
        },
        {
          "from": "google_business_profile_agent_api_local_post_updates",
          "to": "google_business_profile_api_local_posts",
          "kind": "source_link",
          "description": "Local post update proposals cite current post observations when updating existing posts."
        },
        {
          "from": "google_business_profile_agent_api_media_updates",
          "to": "google_business_profile_api_media",
          "kind": "source_link",
          "description": "Media update proposals cite current media observations when updating metadata."
        },
        {
          "from": "google_business_profile_agent_api_question_answers",
          "to": "google_business_profile_api_questions",
          "kind": "source_link",
          "description": "Question answer proposals cite the customer question observation."
        }
      ],
      "installedSpecs": [
        {
          "id": "google_business_profile_api_accounts",
          "domain": "Observation",
          "purpose": "Business Profile account observations.",
          "systems": [
            "google_business_profile"
          ]
        },
        {
          "id": "google_business_profile_api_locations",
          "domain": "Observation",
          "purpose": "Location observations.",
          "systems": [
            "google_business_profile"
          ]
        },
        {
          "id": "google_business_profile_api_location_insights",
          "domain": "Observation",
          "purpose": "Location insight observations.",
          "systems": [
            "google_business_profile"
          ]
        },
        {
          "id": "google_business_profile_api_reviews",
          "domain": "Observation",
          "purpose": "Review observations.",
          "systems": [
            "google_business_profile"
          ]
        },
        {
          "id": "google_business_profile_api_local_posts",
          "domain": "Observation",
          "purpose": "Local post observations.",
          "systems": [
            "google_business_profile"
          ]
        },
        {
          "id": "google_business_profile_api_media",
          "domain": "Observation",
          "purpose": "Media observations.",
          "systems": [
            "google_business_profile"
          ]
        },
        {
          "id": "google_business_profile_api_questions",
          "domain": "Observation",
          "purpose": "Question observations.",
          "systems": [
            "google_business_profile"
          ]
        },
        {
          "id": "google_business_profile_api_answers",
          "domain": "Observation",
          "purpose": "Answer observations.",
          "systems": [
            "google_business_profile"
          ]
        },
        {
          "id": "google_business_profile_api_categories",
          "domain": "Observation",
          "purpose": "Category observations.",
          "systems": [
            "google_business_profile"
          ]
        },
        {
          "id": "google_business_profile_api_attributes",
          "domain": "Observation",
          "purpose": "Attribute observations.",
          "systems": [
            "google_business_profile"
          ]
        },
        {
          "id": "google_business_profile_api_verifications",
          "domain": "Observation",
          "purpose": "Verification observations.",
          "systems": [
            "google_business_profile"
          ]
        },
        {
          "id": "google_business_profile_api_notifications",
          "domain": "Observation",
          "purpose": "Notification observations.",
          "systems": [
            "google_business_profile"
          ]
        },
        {
          "id": "google_business_profile_agent_api_location_updates",
          "domain": "Commitment workflow",
          "purpose": "Governed location updates.",
          "systems": [
            "google_business_profile"
          ]
        },
        {
          "id": "google_business_profile_agent_api_review_replies",
          "domain": "Commitment workflow",
          "purpose": "Governed review replies.",
          "systems": [
            "google_business_profile"
          ]
        },
        {
          "id": "google_business_profile_agent_api_local_post_updates",
          "domain": "Commitment workflow",
          "purpose": "Governed local post updates.",
          "systems": [
            "google_business_profile"
          ]
        },
        {
          "id": "google_business_profile_agent_api_media_updates",
          "domain": "Commitment workflow",
          "purpose": "Governed media updates.",
          "systems": [
            "google_business_profile"
          ]
        },
        {
          "id": "google_business_profile_agent_api_question_answers",
          "domain": "Commitment workflow",
          "purpose": "Governed question answers.",
          "systems": [
            "google_business_profile"
          ]
        }
      ],
      "createSpecPayloads": [
        {
          "specName": "google_business_profile_api_accounts",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "business_profile_account_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Account display name",
                "name": "account_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Account type",
                "name": "account_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Business Profile account observations for ownership, account type, and location management.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Business Profile API accounts",
              "spec_name": "google_business_profile_api_accounts"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_business_profile_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"business_profile_account_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Account display name\",\n      \"name\": \"account_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Account type\",\n      \"name\": \"account_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Business Profile account observations for ownership, account type, and location management.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Business Profile API accounts\",\n    \"spec_name\": \"google_business_profile_api_accounts\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_business_profile_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_business_profile"
          ]
        },
        {
          "specName": "google_business_profile_api_locations",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "location_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Account id",
                "name": "business_profile_account_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Location name",
                "name": "location_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Primary category",
                "name": "primary_category",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Place id",
                "name": "place_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed website URL",
                "name": "website_url_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Verification state",
                "name": "verification_state",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Location observations for business identity, category, address token, phone, website, status, and service area.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Business Profile API locations",
              "spec_name": "google_business_profile_api_locations"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_business_profile_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"location_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Account id\",\n      \"name\": \"business_profile_account_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Location name\",\n      \"name\": \"location_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Primary category\",\n      \"name\": \"primary_category\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Place id\",\n      \"name\": \"place_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed website URL\",\n      \"name\": \"website_url_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Verification state\",\n      \"name\": \"verification_state\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Location observations for business identity, category, address token, phone, website, status, and service area.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Business Profile API locations\",\n    \"spec_name\": \"google_business_profile_api_locations\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_business_profile_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_business_profile"
          ]
        },
        {
          "specName": "google_business_profile_api_location_insights",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "location_insight_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Location id",
                "name": "location_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Report date",
                "name": "date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Metric name",
                "name": "metric_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Metric value",
                "name": "metric_value",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Hashed search term",
                "name": "search_term_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Location insight observations for calls, direction requests, website clicks, views, and search terms.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Business Profile API location insights",
              "spec_name": "google_business_profile_api_location_insights"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_business_profile_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"location_insight_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Location id\",\n      \"name\": \"location_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Report date\",\n      \"name\": \"date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Metric name\",\n      \"name\": \"metric_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Metric value\",\n      \"name\": \"metric_value\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Hashed search term\",\n      \"name\": \"search_term_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Location insight observations for calls, direction requests, website clicks, views, and search terms.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Business Profile API location insights\",\n    \"spec_name\": \"google_business_profile_api_location_insights\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_business_profile_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_business_profile"
          ]
        },
        {
          "specName": "google_business_profile_api_reviews",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "review_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Location id",
                "name": "location_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Hashed review reference",
                "name": "review_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Rating",
                "name": "rating",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Review creation timestamp",
                "name": "review_create_time",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Reply status",
                "name": "reply_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Review observations for rating, reviewer token, comment state, reply status, and location reputation review.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Business Profile API reviews",
              "spec_name": "google_business_profile_api_reviews"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_business_profile_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"review_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Location id\",\n      \"name\": \"location_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed review reference\",\n      \"name\": \"review_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Rating\",\n      \"name\": \"rating\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Review creation timestamp\",\n      \"name\": \"review_create_time\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Reply status\",\n      \"name\": \"reply_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Review observations for rating, reviewer token, comment state, reply status, and location reputation review.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Business Profile API reviews\",\n    \"spec_name\": \"google_business_profile_api_reviews\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_business_profile_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_business_profile"
          ]
        },
        {
          "specName": "google_business_profile_api_local_posts",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "local_post_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Location id",
                "name": "location_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Post topic type",
                "name": "post_topic_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed post summary",
                "name": "summary_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Post state",
                "name": "state",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Published timestamp",
                "name": "published_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Local post observations for update, offer, event, and call-to-action review.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Business Profile API local posts",
              "spec_name": "google_business_profile_api_local_posts"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_business_profile_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"local_post_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Location id\",\n      \"name\": \"location_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Post topic type\",\n      \"name\": \"post_topic_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed post summary\",\n      \"name\": \"summary_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Post state\",\n      \"name\": \"state\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Published timestamp\",\n      \"name\": \"published_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Local post observations for update, offer, event, and call-to-action review.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Business Profile API local posts\",\n    \"spec_name\": \"google_business_profile_api_local_posts\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_business_profile_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_business_profile"
          ]
        },
        {
          "specName": "google_business_profile_api_media",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "media_item_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Location id",
                "name": "location_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Media format",
                "name": "media_format",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Media category",
                "name": "category",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Media source",
                "name": "source",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed thumbnail URL",
                "name": "thumbnail_url_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Media observations for location photos, videos, metadata, categories, and customer contributions.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Business Profile API media",
              "spec_name": "google_business_profile_api_media"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_business_profile_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"media_item_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Location id\",\n      \"name\": \"location_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Media format\",\n      \"name\": \"media_format\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Media category\",\n      \"name\": \"category\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Media source\",\n      \"name\": \"source\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed thumbnail URL\",\n      \"name\": \"thumbnail_url_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Media observations for location photos, videos, metadata, categories, and customer contributions.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Business Profile API media\",\n    \"spec_name\": \"google_business_profile_api_media\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_business_profile_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_business_profile"
          ]
        },
        {
          "specName": "google_business_profile_api_questions",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "question_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Location id",
                "name": "location_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Hashed question text",
                "name": "question_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Creation timestamp",
                "name": "create_time",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Answer count",
                "name": "answer_count",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Question observations for customer questions and answer readiness.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Business Profile API questions",
              "spec_name": "google_business_profile_api_questions"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_business_profile_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"question_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Location id\",\n      \"name\": \"location_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed question text\",\n      \"name\": \"question_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Creation timestamp\",\n      \"name\": \"create_time\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Answer count\",\n      \"name\": \"answer_count\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Question observations for customer questions and answer readiness.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Business Profile API questions\",\n    \"spec_name\": \"google_business_profile_api_questions\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_business_profile_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_business_profile"
          ]
        },
        {
          "specName": "google_business_profile_api_answers",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "answer_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Question id",
                "name": "question_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Location id",
                "name": "location_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed answer text",
                "name": "answer_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Author type",
                "name": "author_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Creation timestamp",
                "name": "create_time",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Answer observations for posted answers, author type, and question follow-up.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Business Profile API answers",
              "spec_name": "google_business_profile_api_answers"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_business_profile_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"answer_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Question id\",\n      \"name\": \"question_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Location id\",\n      \"name\": \"location_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed answer text\",\n      \"name\": \"answer_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Author type\",\n      \"name\": \"author_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Creation timestamp\",\n      \"name\": \"create_time\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Answer observations for posted answers, author type, and question follow-up.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Business Profile API answers\",\n    \"spec_name\": \"google_business_profile_api_answers\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_business_profile_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_business_profile"
          ]
        },
        {
          "specName": "google_business_profile_api_categories",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "category_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Category display name",
                "name": "display_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Service types count",
                "name": "service_types_count",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Business category observations for available categories and location classification review.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Business Profile API categories",
              "spec_name": "google_business_profile_api_categories"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_business_profile_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"category_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Category display name\",\n      \"name\": \"display_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Service types count\",\n      \"name\": \"service_types_count\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Business category observations for available categories and location classification review.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Business Profile API categories\",\n    \"spec_name\": \"google_business_profile_api_categories\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_business_profile_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_business_profile"
          ]
        },
        {
          "specName": "google_business_profile_api_attributes",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "attribute_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Location id",
                "name": "location_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Attribute name",
                "name": "attribute_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Value type",
                "name": "value_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Display name",
                "name": "display_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Attribute observations for location-specific services, amenities, accessibility, and operating details.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Business Profile API attributes",
              "spec_name": "google_business_profile_api_attributes"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_business_profile_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"attribute_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Location id\",\n      \"name\": \"location_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Attribute name\",\n      \"name\": \"attribute_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Value type\",\n      \"name\": \"value_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Display name\",\n      \"name\": \"display_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Attribute observations for location-specific services, amenities, accessibility, and operating details.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Business Profile API attributes\",\n    \"spec_name\": \"google_business_profile_api_attributes\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_business_profile_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_business_profile"
          ]
        },
        {
          "specName": "google_business_profile_api_verifications",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "verification_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Location id",
                "name": "location_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Verification method",
                "name": "method",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Verification state",
                "name": "state",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Creation timestamp",
                "name": "create_time",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Verification observations for location verification state and required follow-up.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Business Profile API verifications",
              "spec_name": "google_business_profile_api_verifications"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_business_profile_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"verification_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Location id\",\n      \"name\": \"location_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Verification method\",\n      \"name\": \"method\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Verification state\",\n      \"name\": \"state\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Creation timestamp\",\n      \"name\": \"create_time\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Verification observations for location verification state and required follow-up.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Business Profile API verifications\",\n    \"spec_name\": \"google_business_profile_api_verifications\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_business_profile_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_business_profile"
          ]
        },
        {
          "specName": "google_business_profile_api_notifications",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "business_profile_notification_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Account id",
                "name": "business_profile_account_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Location id",
                "name": "location_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Notification type",
                "name": "notification_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Event timestamp",
                "name": "event_time",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Notification observations for new reviews, location updates, and account-level event replay.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Business Profile API notifications",
              "spec_name": "google_business_profile_api_notifications"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_business_profile_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"business_profile_notification_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Account id\",\n      \"name\": \"business_profile_account_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Location id\",\n      \"name\": \"location_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Notification type\",\n      \"name\": \"notification_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Event timestamp\",\n      \"name\": \"event_time\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Notification observations for new reviews, location updates, and account-level event replay.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Business Profile API notifications\",\n    \"spec_name\": \"google_business_profile_api_notifications\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_business_profile_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_business_profile"
          ]
        },
        {
          "specName": "google_business_profile_agent_api_location_updates",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "location_update_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "location_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Account id",
                "name": "business_profile_account_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Field name",
                "name": "field_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed current value",
                "name": "current_value_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed proposed value",
                "name": "proposed_value_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed location information update proposals before outbound Business Profile sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Business Profile agent API location updates",
              "spec_name": "google_business_profile_agent_api_location_updates",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_business_profile_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"location_update_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"location_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Account id\",\n      \"name\": \"business_profile_account_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Field name\",\n      \"name\": \"field_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed current value\",\n      \"name\": \"current_value_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed proposed value\",\n      \"name\": \"proposed_value_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed location information update proposals before outbound Business Profile sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Business Profile agent API location updates\",\n    \"spec_name\": \"google_business_profile_agent_api_location_updates\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_business_profile_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_business_profile"
          ]
        },
        {
          "specName": "google_business_profile_agent_api_review_replies",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "review_reply_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "review_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Location id",
                "name": "location_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review rating",
                "name": "rating",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Hashed reply text",
                "name": "reply_text_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Reply tone",
                "name": "reply_tone",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed review reply proposals before outbound Business Profile sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Business Profile agent API review replies",
              "spec_name": "google_business_profile_agent_api_review_replies",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_business_profile_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"review_reply_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"review_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Location id\",\n      \"name\": \"location_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review rating\",\n      \"name\": \"rating\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Hashed reply text\",\n      \"name\": \"reply_text_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Reply tone\",\n      \"name\": \"reply_tone\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed review reply proposals before outbound Business Profile sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Business Profile agent API review replies\",\n    \"spec_name\": \"google_business_profile_agent_api_review_replies\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_business_profile_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_business_profile"
          ]
        },
        {
          "specName": "google_business_profile_agent_api_local_post_updates",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "local_post_update_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "local_post_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Location id",
                "name": "location_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Post topic type",
                "name": "post_topic_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed post summary",
                "name": "summary_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Publish start time",
                "name": "publish_start_time",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Publish end time",
                "name": "publish_end_time",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed local post create/update proposals before outbound Business Profile sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Business Profile agent API local post updates",
              "spec_name": "google_business_profile_agent_api_local_post_updates",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_business_profile_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"local_post_update_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"local_post_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Location id\",\n      \"name\": \"location_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Post topic type\",\n      \"name\": \"post_topic_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed post summary\",\n      \"name\": \"summary_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Publish start time\",\n      \"name\": \"publish_start_time\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Publish end time\",\n      \"name\": \"publish_end_time\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed local post create/update proposals before outbound Business Profile sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Business Profile agent API local post updates\",\n    \"spec_name\": \"google_business_profile_agent_api_local_post_updates\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_business_profile_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_business_profile"
          ]
        },
        {
          "specName": "google_business_profile_agent_api_media_updates",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "media_update_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "media_item_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Location id",
                "name": "location_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Media format",
                "name": "media_format",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Media category",
                "name": "category",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed media URI",
                "name": "media_uri_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed media create/update proposals before outbound Business Profile sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Business Profile agent API media updates",
              "spec_name": "google_business_profile_agent_api_media_updates",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_business_profile_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"media_update_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"media_item_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Location id\",\n      \"name\": \"location_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Media format\",\n      \"name\": \"media_format\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Media category\",\n      \"name\": \"category\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed media URI\",\n      \"name\": \"media_uri_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed media create/update proposals before outbound Business Profile sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Business Profile agent API media updates\",\n    \"spec_name\": \"google_business_profile_agent_api_media_updates\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_business_profile_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_business_profile"
          ]
        },
        {
          "specName": "google_business_profile_agent_api_question_answers",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "question_answer_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "question_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Location id",
                "name": "location_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Hashed question text",
                "name": "question_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed answer text",
                "name": "answer_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Answer source",
                "name": "answer_source",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed answer proposals before outbound Business Profile sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Google Business Profile agent API question answers",
              "spec_name": "google_business_profile_agent_api_question_answers",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "google_business_profile_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"question_answer_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"question_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Location id\",\n      \"name\": \"location_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed question text\",\n      \"name\": \"question_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed answer text\",\n      \"name\": \"answer_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Answer source\",\n      \"name\": \"answer_source\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed answer proposals before outbound Business Profile sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Google Business Profile agent API question answers\",\n    \"spec_name\": \"google_business_profile_agent_api_question_answers\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"google_business_profile_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "google_business_profile"
          ]
        }
      ]
    },
    {
      "id": "tiktok_shop_commerce_library",
      "type": "collection",
      "domains": [
        "commerce",
        "marketing"
      ],
      "systems": [
        "tiktok_shop"
      ],
      "version": "1.0.0",
      "summary": "TikTok Shop specs for shops, products, SKUs, inventory, warehouses, orders, order lines, fulfillments, returns, refunds, settlements, statement transactions, promotions, product issues, affiliate content, webhook events, and governed shop updates.",
      "coverageStatus": "Core",
      "coverageNotes": "Covers common TikTok Shop commerce objects for product, offer, order, fulfillment, return, settlement, and marketplace-health memory. It does not mirror every seller setting, creator program surface, compliance workflow, or restricted write operation.",
      "sourceDocs": [
        {
          "label": "TikTok Shop Partner Center documentation",
          "url": "https://partner.tiktokshop.com/docv2"
        },
        {
          "label": "TikTok Shop order API overview",
          "url": "https://partner.tiktokshop.com/docv2/page/order-api-overview"
        }
      ],
      "nextObjects": [
        "category_attributes",
        "product_size_charts",
        "global_seller_shops",
        "creator_affiliate_orders",
        "customer_service_messages",
        "shipping_provider_services",
        "shop_performance_scores"
      ],
      "omittedObjects": [
        "OAuth/token management",
        "raw buyer PII",
        "full creator profile payloads",
        "restricted compliance documents",
        "every seller settings surface"
      ],
      "needs": [
        "A TikTok Shop agent/operator role. The generated calls use tiktok_shop_agent."
      ],
      "usefulFor": [
        "TikTok Shop catalog memory",
        "Marketplace order review",
        "Fulfillment follow-up",
        "Return and refund review",
        "Settlement reconciliation",
        "Shopify/TikTok catalog and inventory comparison"
      ],
      "extendWith": [
        "Links from Shopify products into TikTok product update proposals",
        "Links from reconciliation findings into SKU price or inventory updates",
        "Links from TikTok settlement observations into QuickBooks or NetSuite cash records"
      ],
      "searchTerms": [
        "tiktok shop",
        "tik tok shop",
        "marketplace",
        "products",
        "skus",
        "inventory",
        "orders",
        "fulfillment",
        "returns",
        "refunds",
        "settlements",
        "promotions",
        "affiliate content"
      ],
      "links": [
        {
          "from": "tiktok_shop_agent_api_product_updates",
          "to": "tiktok_shop_api_products",
          "kind": "source_link",
          "description": "Product update proposals cite current TikTok Shop product observations."
        },
        {
          "from": "tiktok_shop_agent_api_sku_price_updates",
          "to": "tiktok_shop_api_skus",
          "kind": "source_link",
          "description": "SKU price update proposals cite current SKU observations."
        },
        {
          "from": "tiktok_shop_agent_api_inventory_updates",
          "to": "tiktok_shop_api_inventory_levels",
          "kind": "source_link",
          "description": "Inventory update proposals cite current inventory observations."
        },
        {
          "from": "tiktok_shop_agent_api_fulfillment_updates",
          "to": "tiktok_shop_api_orders",
          "kind": "source_link",
          "description": "Fulfillment update proposals cite current order observations."
        },
        {
          "from": "tiktok_shop_agent_api_return_refund_updates",
          "to": "tiktok_shop_api_returns",
          "kind": "source_link",
          "description": "Return/refund proposals cite current return observations."
        },
        {
          "from": "tiktok_shop_agent_api_promotion_updates",
          "to": "tiktok_shop_api_promotions",
          "kind": "source_link",
          "description": "Promotion update proposals cite current promotion observations."
        }
      ],
      "installedSpecs": [
        {
          "id": "tiktok_shop_api_shops",
          "domain": "Observation",
          "purpose": "TikTok Shop setup observations.",
          "systems": [
            "tiktok_shop"
          ]
        },
        {
          "id": "tiktok_shop_api_products",
          "domain": "Observation",
          "purpose": "TikTok Shop product observations.",
          "systems": [
            "tiktok_shop"
          ]
        },
        {
          "id": "tiktok_shop_api_skus",
          "domain": "Observation",
          "purpose": "TikTok Shop SKU and offer observations.",
          "systems": [
            "tiktok_shop"
          ]
        },
        {
          "id": "tiktok_shop_api_inventory_levels",
          "domain": "Observation",
          "purpose": "TikTok Shop inventory observations.",
          "systems": [
            "tiktok_shop"
          ]
        },
        {
          "id": "tiktok_shop_api_warehouses",
          "domain": "Observation",
          "purpose": "TikTok Shop warehouse observations.",
          "systems": [
            "tiktok_shop"
          ]
        },
        {
          "id": "tiktok_shop_api_orders",
          "domain": "Observation",
          "purpose": "TikTok Shop order observations.",
          "systems": [
            "tiktok_shop"
          ]
        },
        {
          "id": "tiktok_shop_api_order_lines",
          "domain": "Observation",
          "purpose": "TikTok Shop order line observations.",
          "systems": [
            "tiktok_shop"
          ]
        },
        {
          "id": "tiktok_shop_api_fulfillments",
          "domain": "Observation",
          "purpose": "TikTok Shop fulfillment observations.",
          "systems": [
            "tiktok_shop"
          ]
        },
        {
          "id": "tiktok_shop_api_returns",
          "domain": "Observation",
          "purpose": "TikTok Shop return observations.",
          "systems": [
            "tiktok_shop"
          ]
        },
        {
          "id": "tiktok_shop_api_refunds",
          "domain": "Observation",
          "purpose": "TikTok Shop refund observations.",
          "systems": [
            "tiktok_shop"
          ]
        },
        {
          "id": "tiktok_shop_api_settlements",
          "domain": "Observation",
          "purpose": "TikTok Shop settlement observations.",
          "systems": [
            "tiktok_shop"
          ]
        },
        {
          "id": "tiktok_shop_api_statement_transactions",
          "domain": "Observation",
          "purpose": "TikTok Shop statement transaction observations.",
          "systems": [
            "tiktok_shop"
          ]
        },
        {
          "id": "tiktok_shop_api_promotions",
          "domain": "Observation",
          "purpose": "TikTok Shop promotion observations.",
          "systems": [
            "tiktok_shop"
          ]
        },
        {
          "id": "tiktok_shop_api_product_issues",
          "domain": "Observation",
          "purpose": "TikTok Shop product issue observations.",
          "systems": [
            "tiktok_shop"
          ]
        },
        {
          "id": "tiktok_shop_api_affiliate_content",
          "domain": "Observation",
          "purpose": "TikTok Shop affiliate content observations.",
          "systems": [
            "tiktok_shop"
          ]
        },
        {
          "id": "tiktok_shop_api_webhook_events",
          "domain": "Observation",
          "purpose": "TikTok Shop event observations.",
          "systems": [
            "tiktok_shop"
          ]
        },
        {
          "id": "tiktok_shop_agent_api_product_updates",
          "domain": "Commitment workflow",
          "purpose": "Governed TikTok Shop product updates.",
          "systems": [
            "tiktok_shop"
          ]
        },
        {
          "id": "tiktok_shop_agent_api_sku_price_updates",
          "domain": "Commitment workflow",
          "purpose": "Governed TikTok Shop SKU price updates.",
          "systems": [
            "tiktok_shop"
          ]
        },
        {
          "id": "tiktok_shop_agent_api_inventory_updates",
          "domain": "Commitment workflow",
          "purpose": "Governed TikTok Shop inventory updates.",
          "systems": [
            "tiktok_shop"
          ]
        },
        {
          "id": "tiktok_shop_agent_api_fulfillment_updates",
          "domain": "Commitment workflow",
          "purpose": "Governed TikTok Shop fulfillment updates.",
          "systems": [
            "tiktok_shop"
          ]
        },
        {
          "id": "tiktok_shop_agent_api_return_refund_updates",
          "domain": "Commitment workflow",
          "purpose": "Governed TikTok Shop return/refund updates.",
          "systems": [
            "tiktok_shop"
          ]
        },
        {
          "id": "tiktok_shop_agent_api_promotion_updates",
          "domain": "Commitment workflow",
          "purpose": "Governed TikTok Shop promotion updates.",
          "systems": [
            "tiktok_shop"
          ]
        }
      ],
      "createSpecPayloads": [
        {
          "specName": "tiktok_shop_api_shops",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "shop_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Shop name",
                "name": "shop_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Region code",
                "name": "region_code",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Seller type",
                "name": "seller_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Shop status",
                "name": "shop_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Shop observations for seller identity, region, authorization, status, and storefront review.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "TikTok Shop API shops",
              "spec_name": "tiktok_shop_api_shops"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "tiktok_shop_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"shop_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Shop name\",\n      \"name\": \"shop_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Region code\",\n      \"name\": \"region_code\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Seller type\",\n      \"name\": \"seller_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Shop status\",\n      \"name\": \"shop_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Shop observations for seller identity, region, authorization, status, and storefront review.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"TikTok Shop API shops\",\n    \"spec_name\": \"tiktok_shop_api_shops\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"tiktok_shop_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "tiktok_shop"
          ]
        },
        {
          "specName": "tiktok_shop_api_products",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "product_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Shop id",
                "name": "shop_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Seller SKU",
                "name": "seller_sku",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Product title",
                "name": "title",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Category id",
                "name": "category_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Brand name",
                "name": "brand_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Product status",
                "name": "product_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Product observations for TikTok Shop catalog identity, listing status, category, brand, and content review.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "TikTok Shop API products",
              "spec_name": "tiktok_shop_api_products"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "tiktok_shop_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"product_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Shop id\",\n      \"name\": \"shop_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Seller SKU\",\n      \"name\": \"seller_sku\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Product title\",\n      \"name\": \"title\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Category id\",\n      \"name\": \"category_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Brand name\",\n      \"name\": \"brand_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Product status\",\n      \"name\": \"product_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Product observations for TikTok Shop catalog identity, listing status, category, brand, and content review.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"TikTok Shop API products\",\n    \"spec_name\": \"tiktok_shop_api_products\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"tiktok_shop_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "tiktok_shop"
          ]
        },
        {
          "specName": "tiktok_shop_api_skus",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "sku_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Product id",
                "name": "product_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Seller SKU",
                "name": "seller_sku",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Variant option summary",
                "name": "option_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Price amount",
                "name": "price_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Sale price amount",
                "name": "sale_price_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency code",
                "name": "currency_code",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "SKU observations for TikTok Shop variants, seller SKUs, price, sale price, stock, and option values.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "TikTok Shop API SKUs",
              "spec_name": "tiktok_shop_api_skus"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "tiktok_shop_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"sku_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Product id\",\n      \"name\": \"product_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Seller SKU\",\n      \"name\": \"seller_sku\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Variant option summary\",\n      \"name\": \"option_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Price amount\",\n      \"name\": \"price_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Sale price amount\",\n      \"name\": \"sale_price_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency code\",\n      \"name\": \"currency_code\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"SKU observations for TikTok Shop variants, seller SKUs, price, sale price, stock, and option values.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"TikTok Shop API SKUs\",\n    \"spec_name\": \"tiktok_shop_api_skus\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"tiktok_shop_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "tiktok_shop"
          ]
        },
        {
          "specName": "tiktok_shop_api_inventory_levels",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "inventory_level_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Shop id",
                "name": "shop_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Product id",
                "name": "product_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "SKU id",
                "name": "sku_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Warehouse id",
                "name": "warehouse_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Available quantity",
                "name": "available_quantity",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Reserved quantity",
                "name": "reserved_quantity",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Inventory observations for TikTok Shop SKU stock by warehouse and sellable status.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "TikTok Shop API inventory levels",
              "spec_name": "tiktok_shop_api_inventory_levels"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "tiktok_shop_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"inventory_level_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Shop id\",\n      \"name\": \"shop_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Product id\",\n      \"name\": \"product_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"SKU id\",\n      \"name\": \"sku_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Warehouse id\",\n      \"name\": \"warehouse_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Available quantity\",\n      \"name\": \"available_quantity\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Reserved quantity\",\n      \"name\": \"reserved_quantity\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Inventory observations for TikTok Shop SKU stock by warehouse and sellable status.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"TikTok Shop API inventory levels\",\n    \"spec_name\": \"tiktok_shop_api_inventory_levels\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"tiktok_shop_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "tiktok_shop"
          ]
        },
        {
          "specName": "tiktok_shop_api_warehouses",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "warehouse_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Shop id",
                "name": "shop_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Warehouse name",
                "name": "warehouse_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Warehouse type",
                "name": "warehouse_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Region code",
                "name": "region_code",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Active flag",
                "name": "active",
                "tests": [],
                "type": "boolean"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Warehouse observations for fulfillment location, region, and inventory routing.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "TikTok Shop API warehouses",
              "spec_name": "tiktok_shop_api_warehouses"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "tiktok_shop_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"warehouse_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Shop id\",\n      \"name\": \"shop_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Warehouse name\",\n      \"name\": \"warehouse_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Warehouse type\",\n      \"name\": \"warehouse_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Region code\",\n      \"name\": \"region_code\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Active flag\",\n      \"name\": \"active\",\n      \"tests\": [],\n      \"type\": \"boolean\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Warehouse observations for fulfillment location, region, and inventory routing.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"TikTok Shop API warehouses\",\n    \"spec_name\": \"tiktok_shop_api_warehouses\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"tiktok_shop_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "tiktok_shop"
          ]
        },
        {
          "specName": "tiktok_shop_api_orders",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "order_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Shop id",
                "name": "shop_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Order number",
                "name": "order_number",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed buyer reference",
                "name": "buyer_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Order status",
                "name": "order_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Fulfillment status",
                "name": "fulfillment_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Total amount",
                "name": "total_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency code",
                "name": "currency_code",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Order observations for TikTok Shop order lifecycle, buyer-safe tokens, totals, payment, and fulfillment status.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "TikTok Shop API orders",
              "spec_name": "tiktok_shop_api_orders"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "tiktok_shop_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"order_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Shop id\",\n      \"name\": \"shop_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Order number\",\n      \"name\": \"order_number\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed buyer reference\",\n      \"name\": \"buyer_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Order status\",\n      \"name\": \"order_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Fulfillment status\",\n      \"name\": \"fulfillment_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Total amount\",\n      \"name\": \"total_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency code\",\n      \"name\": \"currency_code\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Order observations for TikTok Shop order lifecycle, buyer-safe tokens, totals, payment, and fulfillment status.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"TikTok Shop API orders\",\n    \"spec_name\": \"tiktok_shop_api_orders\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"tiktok_shop_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "tiktok_shop"
          ]
        },
        {
          "specName": "tiktok_shop_api_order_lines",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "order_line_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Order id",
                "name": "order_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Product id",
                "name": "product_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "SKU id",
                "name": "sku_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Seller SKU",
                "name": "seller_sku",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Quantity",
                "name": "quantity",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Line total amount",
                "name": "line_total_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Order line observations for TikTok Shop purchased products, SKUs, quantity, price, tax, and discounts.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "TikTok Shop API order lines",
              "spec_name": "tiktok_shop_api_order_lines"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "tiktok_shop_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"order_line_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Order id\",\n      \"name\": \"order_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Product id\",\n      \"name\": \"product_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"SKU id\",\n      \"name\": \"sku_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Seller SKU\",\n      \"name\": \"seller_sku\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Quantity\",\n      \"name\": \"quantity\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Line total amount\",\n      \"name\": \"line_total_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Order line observations for TikTok Shop purchased products, SKUs, quantity, price, tax, and discounts.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"TikTok Shop API order lines\",\n    \"spec_name\": \"tiktok_shop_api_order_lines\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"tiktok_shop_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "tiktok_shop"
          ]
        },
        {
          "specName": "tiktok_shop_api_fulfillments",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "fulfillment_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Order id",
                "name": "order_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Package id",
                "name": "package_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Carrier code",
                "name": "carrier_code",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed tracking number",
                "name": "tracking_number_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Shipped timestamp",
                "name": "shipped_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Delivery status",
                "name": "delivery_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Fulfillment observations for shipment creation, carrier, tracking, delivery status, and order sync review.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "TikTok Shop API fulfillments",
              "spec_name": "tiktok_shop_api_fulfillments"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "tiktok_shop_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"fulfillment_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Order id\",\n      \"name\": \"order_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Package id\",\n      \"name\": \"package_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Carrier code\",\n      \"name\": \"carrier_code\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed tracking number\",\n      \"name\": \"tracking_number_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Shipped timestamp\",\n      \"name\": \"shipped_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Delivery status\",\n      \"name\": \"delivery_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Fulfillment observations for shipment creation, carrier, tracking, delivery status, and order sync review.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"TikTok Shop API fulfillments\",\n    \"spec_name\": \"tiktok_shop_api_fulfillments\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"tiktok_shop_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "tiktok_shop"
          ]
        },
        {
          "specName": "tiktok_shop_api_returns",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "return_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Order id",
                "name": "order_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Return status",
                "name": "return_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Return reason",
                "name": "return_reason",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Requested timestamp",
                "name": "requested_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Return line count",
                "name": "return_line_count",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Return observations for buyer return requests, return status, reason, items, and seller action.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "TikTok Shop API returns",
              "spec_name": "tiktok_shop_api_returns"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "tiktok_shop_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"return_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Order id\",\n      \"name\": \"order_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Return status\",\n      \"name\": \"return_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Return reason\",\n      \"name\": \"return_reason\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested timestamp\",\n      \"name\": \"requested_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Return line count\",\n      \"name\": \"return_line_count\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Return observations for buyer return requests, return status, reason, items, and seller action.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"TikTok Shop API returns\",\n    \"spec_name\": \"tiktok_shop_api_returns\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"tiktok_shop_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "tiktok_shop"
          ]
        },
        {
          "specName": "tiktok_shop_api_refunds",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "refund_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Order id",
                "name": "order_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Return id",
                "name": "return_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Refund status",
                "name": "refund_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Refund amount",
                "name": "refund_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency code",
                "name": "currency_code",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Refund observations for refund amount, status, reason, and related return or order.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "TikTok Shop API refunds",
              "spec_name": "tiktok_shop_api_refunds"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "tiktok_shop_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"refund_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Order id\",\n      \"name\": \"order_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Return id\",\n      \"name\": \"return_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Refund status\",\n      \"name\": \"refund_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Refund amount\",\n      \"name\": \"refund_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency code\",\n      \"name\": \"currency_code\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Refund observations for refund amount, status, reason, and related return or order.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"TikTok Shop API refunds\",\n    \"spec_name\": \"tiktok_shop_api_refunds\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"tiktok_shop_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "tiktok_shop"
          ]
        },
        {
          "specName": "tiktok_shop_api_settlements",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "settlement_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Shop id",
                "name": "shop_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Period start",
                "name": "period_start",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Period end",
                "name": "period_end",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Settlement status",
                "name": "settlement_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Gross amount",
                "name": "gross_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Net amount",
                "name": "net_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency code",
                "name": "currency_code",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Settlement observations for payout periods, settlement status, gross sales, fees, adjustments, and net payout.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "TikTok Shop API settlements",
              "spec_name": "tiktok_shop_api_settlements"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "tiktok_shop_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"settlement_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Shop id\",\n      \"name\": \"shop_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Period start\",\n      \"name\": \"period_start\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Period end\",\n      \"name\": \"period_end\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Settlement status\",\n      \"name\": \"settlement_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Gross amount\",\n      \"name\": \"gross_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Net amount\",\n      \"name\": \"net_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency code\",\n      \"name\": \"currency_code\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Settlement observations for payout periods, settlement status, gross sales, fees, adjustments, and net payout.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"TikTok Shop API settlements\",\n    \"spec_name\": \"tiktok_shop_api_settlements\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"tiktok_shop_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "tiktok_shop"
          ]
        },
        {
          "specName": "tiktok_shop_api_statement_transactions",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "statement_transaction_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Settlement id",
                "name": "settlement_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Order id",
                "name": "order_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Transaction type",
                "name": "transaction_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Transaction amount",
                "name": "amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency code",
                "name": "currency_code",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Statement transaction observations for TikTok Shop fees, refunds, adjustments, settlements, and order-level cash review.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "TikTok Shop API statement transactions",
              "spec_name": "tiktok_shop_api_statement_transactions"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "tiktok_shop_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"statement_transaction_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Settlement id\",\n      \"name\": \"settlement_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Order id\",\n      \"name\": \"order_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Transaction type\",\n      \"name\": \"transaction_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Transaction amount\",\n      \"name\": \"amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency code\",\n      \"name\": \"currency_code\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Statement transaction observations for TikTok Shop fees, refunds, adjustments, settlements, and order-level cash review.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"TikTok Shop API statement transactions\",\n    \"spec_name\": \"tiktok_shop_api_statement_transactions\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"tiktok_shop_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "tiktok_shop"
          ]
        },
        {
          "specName": "tiktok_shop_api_promotions",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "promotion_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Shop id",
                "name": "shop_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Promotion name",
                "name": "promotion_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Promotion type",
                "name": "promotion_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Promotion status",
                "name": "promotion_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Start time",
                "name": "start_time",
                "tests": [],
                "type": "string"
              },
              {
                "description": "End time",
                "name": "end_time",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Promotion observations for TikTok Shop discounts, product eligibility, dates, and status.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "TikTok Shop API promotions",
              "spec_name": "tiktok_shop_api_promotions"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "tiktok_shop_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"promotion_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Shop id\",\n      \"name\": \"shop_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Promotion name\",\n      \"name\": \"promotion_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Promotion type\",\n      \"name\": \"promotion_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Promotion status\",\n      \"name\": \"promotion_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Start time\",\n      \"name\": \"start_time\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"End time\",\n      \"name\": \"end_time\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Promotion observations for TikTok Shop discounts, product eligibility, dates, and status.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"TikTok Shop API promotions\",\n    \"spec_name\": \"tiktok_shop_api_promotions\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"tiktok_shop_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "tiktok_shop"
          ]
        },
        {
          "specName": "tiktok_shop_api_product_issues",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "product_issue_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Shop id",
                "name": "shop_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Product id",
                "name": "product_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "SKU id",
                "name": "sku_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Issue type",
                "name": "issue_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Issue severity",
                "name": "severity",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Resolution status",
                "name": "resolution_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Product issue observations for TikTok Shop listing suppression, policy, stock, catalog, or compliance follow-up.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "TikTok Shop API product issues",
              "spec_name": "tiktok_shop_api_product_issues"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "tiktok_shop_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"product_issue_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Shop id\",\n      \"name\": \"shop_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Product id\",\n      \"name\": \"product_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"SKU id\",\n      \"name\": \"sku_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Issue type\",\n      \"name\": \"issue_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Issue severity\",\n      \"name\": \"severity\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Resolution status\",\n      \"name\": \"resolution_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Product issue observations for TikTok Shop listing suppression, policy, stock, catalog, or compliance follow-up.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"TikTok Shop API product issues\",\n    \"spec_name\": \"tiktok_shop_api_product_issues\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"tiktok_shop_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "tiktok_shop"
          ]
        },
        {
          "specName": "tiktok_shop_api_affiliate_content",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "affiliate_content_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Shop id",
                "name": "shop_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Hashed creator id",
                "name": "creator_id_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Product id",
                "name": "product_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Content type",
                "name": "content_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Commission rate",
                "name": "commission_rate",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Content status",
                "name": "content_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Affiliate and shoppable content observations for creator, product, commission, and content performance review.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "TikTok Shop API affiliate content",
              "spec_name": "tiktok_shop_api_affiliate_content"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "tiktok_shop_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"affiliate_content_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Shop id\",\n      \"name\": \"shop_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed creator id\",\n      \"name\": \"creator_id_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Product id\",\n      \"name\": \"product_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Content type\",\n      \"name\": \"content_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Commission rate\",\n      \"name\": \"commission_rate\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Content status\",\n      \"name\": \"content_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Affiliate and shoppable content observations for creator, product, commission, and content performance review.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"TikTok Shop API affiliate content\",\n    \"spec_name\": \"tiktok_shop_api_affiliate_content\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"tiktok_shop_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "tiktok_shop"
          ]
        },
        {
          "specName": "tiktok_shop_api_webhook_events",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "webhook_event_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Shop id",
                "name": "shop_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Event type",
                "name": "event_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Resource type",
                "name": "resource_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Resource id",
                "name": "resource_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Occurred timestamp",
                "name": "occurred_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Webhook event observations for TikTok Shop product, order, fulfillment, return, and settlement replay.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "TikTok Shop API webhook events",
              "spec_name": "tiktok_shop_api_webhook_events"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "tiktok_shop_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"webhook_event_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Shop id\",\n      \"name\": \"shop_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Event type\",\n      \"name\": \"event_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Resource type\",\n      \"name\": \"resource_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Resource id\",\n      \"name\": \"resource_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Occurred timestamp\",\n      \"name\": \"occurred_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Webhook event observations for TikTok Shop product, order, fulfillment, return, and settlement replay.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"TikTok Shop API webhook events\",\n    \"spec_name\": \"tiktok_shop_api_webhook_events\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"tiktok_shop_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "tiktok_shop"
          ]
        },
        {
          "specName": "tiktok_shop_agent_api_product_updates",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "product_update_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "product_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Shop id",
                "name": "shop_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Seller SKU",
                "name": "seller_sku",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Field name",
                "name": "field_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed current value",
                "name": "current_value_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed proposed value",
                "name": "proposed_value_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed TikTok Shop product content or status update proposals before outbound TikTok Shop sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "TikTok Shop agent API product updates",
              "spec_name": "tiktok_shop_agent_api_product_updates",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "tiktok_shop_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"product_update_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"product_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Shop id\",\n      \"name\": \"shop_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Seller SKU\",\n      \"name\": \"seller_sku\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Field name\",\n      \"name\": \"field_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed current value\",\n      \"name\": \"current_value_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed proposed value\",\n      \"name\": \"proposed_value_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed TikTok Shop product content or status update proposals before outbound TikTok Shop sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"TikTok Shop agent API product updates\",\n    \"spec_name\": \"tiktok_shop_agent_api_product_updates\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"tiktok_shop_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "tiktok_shop"
          ]
        },
        {
          "specName": "tiktok_shop_agent_api_sku_price_updates",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "sku_price_update_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "sku_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Shop id",
                "name": "shop_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Product id",
                "name": "product_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Seller SKU",
                "name": "seller_sku",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Current price amount",
                "name": "current_price_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Proposed price amount",
                "name": "proposed_price_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency code",
                "name": "currency_code",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed TikTok Shop SKU price or offer update proposals before outbound TikTok Shop sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "TikTok Shop agent API SKU price updates",
              "spec_name": "tiktok_shop_agent_api_sku_price_updates",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "tiktok_shop_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"sku_price_update_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"sku_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Shop id\",\n      \"name\": \"shop_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Product id\",\n      \"name\": \"product_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Seller SKU\",\n      \"name\": \"seller_sku\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Current price amount\",\n      \"name\": \"current_price_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Proposed price amount\",\n      \"name\": \"proposed_price_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency code\",\n      \"name\": \"currency_code\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed TikTok Shop SKU price or offer update proposals before outbound TikTok Shop sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"TikTok Shop agent API SKU price updates\",\n    \"spec_name\": \"tiktok_shop_agent_api_sku_price_updates\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"tiktok_shop_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "tiktok_shop"
          ]
        },
        {
          "specName": "tiktok_shop_agent_api_inventory_updates",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "inventory_update_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "inventory_level_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Shop id",
                "name": "shop_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "SKU id",
                "name": "sku_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Warehouse id",
                "name": "warehouse_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Current available quantity",
                "name": "current_available_quantity",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Proposed available quantity",
                "name": "proposed_available_quantity",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed TikTok Shop inventory update proposals before outbound TikTok Shop sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "TikTok Shop agent API inventory updates",
              "spec_name": "tiktok_shop_agent_api_inventory_updates",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "tiktok_shop_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"inventory_update_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"inventory_level_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Shop id\",\n      \"name\": \"shop_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"SKU id\",\n      \"name\": \"sku_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Warehouse id\",\n      \"name\": \"warehouse_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Current available quantity\",\n      \"name\": \"current_available_quantity\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Proposed available quantity\",\n      \"name\": \"proposed_available_quantity\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed TikTok Shop inventory update proposals before outbound TikTok Shop sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"TikTok Shop agent API inventory updates\",\n    \"spec_name\": \"tiktok_shop_agent_api_inventory_updates\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"tiktok_shop_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "tiktok_shop"
          ]
        },
        {
          "specName": "tiktok_shop_agent_api_fulfillment_updates",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "fulfillment_update_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "order_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Shop id",
                "name": "shop_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Package id",
                "name": "package_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Carrier code",
                "name": "carrier_code",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed tracking number",
                "name": "tracking_number_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Fulfillment action",
                "name": "fulfillment_action",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed TikTok Shop fulfillment or tracking update proposals before outbound TikTok Shop sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "TikTok Shop agent API fulfillment updates",
              "spec_name": "tiktok_shop_agent_api_fulfillment_updates",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "tiktok_shop_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"fulfillment_update_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"order_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Shop id\",\n      \"name\": \"shop_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Package id\",\n      \"name\": \"package_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Carrier code\",\n      \"name\": \"carrier_code\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed tracking number\",\n      \"name\": \"tracking_number_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Fulfillment action\",\n      \"name\": \"fulfillment_action\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed TikTok Shop fulfillment or tracking update proposals before outbound TikTok Shop sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"TikTok Shop agent API fulfillment updates\",\n    \"spec_name\": \"tiktok_shop_agent_api_fulfillment_updates\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"tiktok_shop_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "tiktok_shop"
          ]
        },
        {
          "specName": "tiktok_shop_agent_api_return_refund_updates",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "return_refund_update_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "return_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Shop id",
                "name": "shop_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Order id",
                "name": "order_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Requested resolution",
                "name": "requested_resolution",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Refund amount",
                "name": "refund_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency code",
                "name": "currency_code",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed TikTok Shop return or refund action proposals before outbound TikTok Shop sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "TikTok Shop agent API return refund updates",
              "spec_name": "tiktok_shop_agent_api_return_refund_updates",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "tiktok_shop_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"return_refund_update_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"return_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Shop id\",\n      \"name\": \"shop_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Order id\",\n      \"name\": \"order_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested resolution\",\n      \"name\": \"requested_resolution\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Refund amount\",\n      \"name\": \"refund_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency code\",\n      \"name\": \"currency_code\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed TikTok Shop return or refund action proposals before outbound TikTok Shop sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"TikTok Shop agent API return refund updates\",\n    \"spec_name\": \"tiktok_shop_agent_api_return_refund_updates\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"tiktok_shop_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "tiktok_shop"
          ]
        },
        {
          "specName": "tiktok_shop_agent_api_promotion_updates",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "promotion_update_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "promotion_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Shop id",
                "name": "shop_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Promotion name",
                "name": "promotion_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Promotion type",
                "name": "promotion_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Start time",
                "name": "start_time",
                "tests": [],
                "type": "string"
              },
              {
                "description": "End time",
                "name": "end_time",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed TikTok Shop promotion create/update proposals before outbound TikTok Shop sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "TikTok Shop agent API promotion updates",
              "spec_name": "tiktok_shop_agent_api_promotion_updates",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "tiktok_shop_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"promotion_update_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"promotion_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Shop id\",\n      \"name\": \"shop_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Promotion name\",\n      \"name\": \"promotion_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Promotion type\",\n      \"name\": \"promotion_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Start time\",\n      \"name\": \"start_time\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"End time\",\n      \"name\": \"end_time\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed TikTok Shop promotion create/update proposals before outbound TikTok Shop sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"TikTok Shop agent API promotion updates\",\n    \"spec_name\": \"tiktok_shop_agent_api_promotion_updates\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"tiktok_shop_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "tiktok_shop"
          ]
        }
      ]
    },
    {
      "id": "tiktok_ads_marketing_library",
      "type": "collection",
      "domains": [
        "marketing",
        "commerce"
      ],
      "systems": [
        "tiktok_ads",
        "ad_platforms"
      ],
      "version": "1.0.0",
      "summary": "TikTok Ads specs for advertisers, campaigns, ad groups, ads, creatives, Spark posts, catalogs, catalog products, product sets, pixels, events, audiences, performance reporting, product performance, comments, and governed ad updates.",
      "coverageStatus": "Core",
      "coverageNotes": "Covers common TikTok Ads objects used for paid social review, catalog ads, event health, product performance, comment queues, and approval-first outbound ad changes. It does not mirror every report dimension, creative review detail, audience-source payload, or Business Center administration surface.",
      "sourceDocs": [
        {
          "label": "TikTok Marketing API overview",
          "url": "https://ads.tiktok.com/help/article/marketing-api?lang=en"
        },
        {
          "label": "TikTok for Business developers",
          "url": "https://business-api.tiktok.com/portal/docs"
        }
      ],
      "nextObjects": [
        "lead_forms",
        "instant_pages",
        "brand_safety_settings",
        "creative_insights",
        "video_assets",
        "split_tests",
        "business_center_assets",
        "shop_ads_extended_reporting"
      ],
      "omittedObjects": [
        "OAuth/token management",
        "raw user identifiers",
        "full audience upload payloads",
        "every reporting dimension combination",
        "restricted moderation operations"
      ],
      "needs": [
        "A TikTok Ads agent/operator role. The generated calls use tiktok_ads_agent."
      ],
      "usefulFor": [
        "Paid social campaign memory",
        "Catalog ad review",
        "Creative performance analysis",
        "Pixel and event health checks",
        "Comment moderation queues",
        "Governed campaign and creative updates"
      ],
      "extendWith": [
        "Links from Shopify/TikTok Shop catalog observations into catalog product updates",
        "Links from TikTok product performance into price or product content reconciliation findings",
        "Links from GA4 and TikTok event observations into conversion-health review"
      ],
      "searchTerms": [
        "tiktok ads",
        "tik tok ads",
        "marketing api",
        "paid social",
        "campaigns",
        "ad groups",
        "ads",
        "creatives",
        "spark posts",
        "catalogs",
        "product sets",
        "pixels",
        "events",
        "audiences",
        "comments"
      ],
      "links": [
        {
          "from": "tiktok_ads_agent_api_campaign_budget_updates",
          "to": "tiktok_ads_api_campaigns",
          "kind": "source_link",
          "description": "Campaign budget proposals cite current campaign observations."
        },
        {
          "from": "tiktok_ads_agent_api_campaign_status_updates",
          "to": "tiktok_ads_api_campaigns",
          "kind": "source_link",
          "description": "Campaign status proposals cite current campaign observations."
        },
        {
          "from": "tiktok_ads_agent_api_ad_group_bid_updates",
          "to": "tiktok_ads_api_ad_groups",
          "kind": "source_link",
          "description": "Ad group bid proposals cite current ad group observations."
        },
        {
          "from": "tiktok_ads_agent_api_creative_updates",
          "to": "tiktok_ads_api_creatives",
          "kind": "source_link",
          "description": "Creative update proposals cite current creative observations."
        },
        {
          "from": "tiktok_ads_agent_api_audience_updates",
          "to": "tiktok_ads_api_audiences",
          "kind": "source_link",
          "description": "Audience proposals cite current audience observations when updating existing audiences."
        },
        {
          "from": "tiktok_ads_agent_api_catalog_product_updates",
          "to": "tiktok_ads_api_catalog_products",
          "kind": "source_link",
          "description": "Catalog product proposals cite current catalog product observations."
        }
      ],
      "installedSpecs": [
        {
          "id": "tiktok_ads_api_advertisers",
          "domain": "Observation",
          "purpose": "TikTok Ads advertiser observations.",
          "systems": [
            "tiktok_ads",
            "ad_platforms"
          ]
        },
        {
          "id": "tiktok_ads_api_campaigns",
          "domain": "Observation",
          "purpose": "TikTok Ads campaign observations.",
          "systems": [
            "tiktok_ads",
            "ad_platforms"
          ]
        },
        {
          "id": "tiktok_ads_api_ad_groups",
          "domain": "Observation",
          "purpose": "TikTok Ads ad group observations.",
          "systems": [
            "tiktok_ads",
            "ad_platforms"
          ]
        },
        {
          "id": "tiktok_ads_api_ads",
          "domain": "Observation",
          "purpose": "TikTok Ads ad observations.",
          "systems": [
            "tiktok_ads",
            "ad_platforms"
          ]
        },
        {
          "id": "tiktok_ads_api_creatives",
          "domain": "Observation",
          "purpose": "TikTok Ads creative observations.",
          "systems": [
            "tiktok_ads",
            "ad_platforms"
          ]
        },
        {
          "id": "tiktok_ads_api_spark_posts",
          "domain": "Observation",
          "purpose": "TikTok Spark post observations.",
          "systems": [
            "tiktok_ads",
            "ad_platforms"
          ]
        },
        {
          "id": "tiktok_ads_api_catalogs",
          "domain": "Observation",
          "purpose": "TikTok Ads catalog observations.",
          "systems": [
            "tiktok_ads",
            "ad_platforms"
          ]
        },
        {
          "id": "tiktok_ads_api_catalog_products",
          "domain": "Observation",
          "purpose": "TikTok Ads catalog product observations.",
          "systems": [
            "tiktok_ads",
            "ad_platforms"
          ]
        },
        {
          "id": "tiktok_ads_api_product_sets",
          "domain": "Observation",
          "purpose": "TikTok Ads product set observations.",
          "systems": [
            "tiktok_ads",
            "ad_platforms"
          ]
        },
        {
          "id": "tiktok_ads_api_pixels",
          "domain": "Observation",
          "purpose": "TikTok Ads pixel observations.",
          "systems": [
            "tiktok_ads",
            "ad_platforms"
          ]
        },
        {
          "id": "tiktok_ads_api_events",
          "domain": "Observation",
          "purpose": "TikTok Ads event observations.",
          "systems": [
            "tiktok_ads",
            "ad_platforms"
          ]
        },
        {
          "id": "tiktok_ads_api_audiences",
          "domain": "Observation",
          "purpose": "TikTok Ads audience observations.",
          "systems": [
            "tiktok_ads",
            "ad_platforms"
          ]
        },
        {
          "id": "tiktok_ads_api_performance_metrics",
          "domain": "Observation",
          "purpose": "TikTok Ads performance observations.",
          "systems": [
            "tiktok_ads",
            "ad_platforms"
          ]
        },
        {
          "id": "tiktok_ads_api_product_performance",
          "domain": "Observation",
          "purpose": "TikTok product performance observations.",
          "systems": [
            "tiktok_ads",
            "ad_platforms"
          ]
        },
        {
          "id": "tiktok_ads_api_comments",
          "domain": "Observation",
          "purpose": "TikTok Ads comment observations.",
          "systems": [
            "tiktok_ads",
            "ad_platforms"
          ]
        },
        {
          "id": "tiktok_ads_agent_api_campaign_budget_updates",
          "domain": "Commitment workflow",
          "purpose": "Governed TikTok Ads campaign budget updates.",
          "systems": [
            "tiktok_ads",
            "ad_platforms"
          ]
        },
        {
          "id": "tiktok_ads_agent_api_campaign_status_updates",
          "domain": "Commitment workflow",
          "purpose": "Governed TikTok Ads campaign status updates.",
          "systems": [
            "tiktok_ads",
            "ad_platforms"
          ]
        },
        {
          "id": "tiktok_ads_agent_api_ad_group_bid_updates",
          "domain": "Commitment workflow",
          "purpose": "Governed TikTok Ads ad group bid updates.",
          "systems": [
            "tiktok_ads",
            "ad_platforms"
          ]
        },
        {
          "id": "tiktok_ads_agent_api_creative_updates",
          "domain": "Commitment workflow",
          "purpose": "Governed TikTok Ads creative updates.",
          "systems": [
            "tiktok_ads",
            "ad_platforms"
          ]
        },
        {
          "id": "tiktok_ads_agent_api_audience_updates",
          "domain": "Commitment workflow",
          "purpose": "Governed TikTok Ads audience updates.",
          "systems": [
            "tiktok_ads",
            "ad_platforms"
          ]
        },
        {
          "id": "tiktok_ads_agent_api_catalog_product_updates",
          "domain": "Commitment workflow",
          "purpose": "Governed TikTok Ads catalog product updates.",
          "systems": [
            "tiktok_ads",
            "ad_platforms"
          ]
        }
      ],
      "createSpecPayloads": [
        {
          "specName": "tiktok_ads_api_advertisers",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "advertiser_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Advertiser name",
                "name": "advertiser_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Currency code",
                "name": "currency_code",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Time zone",
                "name": "time_zone",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Advertiser status",
                "name": "advertiser_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Advertiser observations for TikTok Ads account identity, currency, time zone, and status.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "TikTok Ads API advertisers",
              "spec_name": "tiktok_ads_api_advertisers"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "tiktok_ads_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"advertiser_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Advertiser name\",\n      \"name\": \"advertiser_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Currency code\",\n      \"name\": \"currency_code\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Time zone\",\n      \"name\": \"time_zone\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Advertiser status\",\n      \"name\": \"advertiser_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Advertiser observations for TikTok Ads account identity, currency, time zone, and status.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"TikTok Ads API advertisers\",\n    \"spec_name\": \"tiktok_ads_api_advertisers\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"tiktok_ads_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "tiktok_ads"
          ]
        },
        {
          "specName": "tiktok_ads_api_campaigns",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "campaign_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Advertiser id",
                "name": "advertiser_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Campaign name",
                "name": "campaign_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Objective type",
                "name": "objective_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Budget mode",
                "name": "budget_mode",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Budget amount",
                "name": "budget_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Campaign status",
                "name": "campaign_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Campaign observations for objective, budget, status, and TikTok Ads campaign structure.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "TikTok Ads API campaigns",
              "spec_name": "tiktok_ads_api_campaigns"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "tiktok_ads_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"campaign_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Advertiser id\",\n      \"name\": \"advertiser_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Campaign name\",\n      \"name\": \"campaign_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Objective type\",\n      \"name\": \"objective_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Budget mode\",\n      \"name\": \"budget_mode\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Budget amount\",\n      \"name\": \"budget_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Campaign status\",\n      \"name\": \"campaign_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Campaign observations for objective, budget, status, and TikTok Ads campaign structure.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"TikTok Ads API campaigns\",\n    \"spec_name\": \"tiktok_ads_api_campaigns\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"tiktok_ads_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "tiktok_ads"
          ]
        },
        {
          "specName": "tiktok_ads_api_ad_groups",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "ad_group_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Campaign id",
                "name": "campaign_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Advertiser id",
                "name": "advertiser_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Ad group name",
                "name": "ad_group_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Placement type",
                "name": "placement_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Optimization goal",
                "name": "optimization_goal",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Bid amount",
                "name": "bid_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Ad group status",
                "name": "ad_group_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Ad group observations for placement, targeting, budget, bid, schedule, and delivery status.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "TikTok Ads API ad groups",
              "spec_name": "tiktok_ads_api_ad_groups"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "tiktok_ads_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"ad_group_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Campaign id\",\n      \"name\": \"campaign_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Advertiser id\",\n      \"name\": \"advertiser_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Ad group name\",\n      \"name\": \"ad_group_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Placement type\",\n      \"name\": \"placement_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Optimization goal\",\n      \"name\": \"optimization_goal\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Bid amount\",\n      \"name\": \"bid_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Ad group status\",\n      \"name\": \"ad_group_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Ad group observations for placement, targeting, budget, bid, schedule, and delivery status.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"TikTok Ads API ad groups\",\n    \"spec_name\": \"tiktok_ads_api_ad_groups\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"tiktok_ads_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "tiktok_ads"
          ]
        },
        {
          "specName": "tiktok_ads_api_ads",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "ad_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Ad group id",
                "name": "ad_group_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Advertiser id",
                "name": "advertiser_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Ad name",
                "name": "ad_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Creative id",
                "name": "creative_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Review status",
                "name": "review_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Ad status",
                "name": "ad_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Ad observations for TikTok Ads creative linkage, review status, delivery status, and landing destination.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "TikTok Ads API ads",
              "spec_name": "tiktok_ads_api_ads"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "tiktok_ads_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"ad_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Ad group id\",\n      \"name\": \"ad_group_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Advertiser id\",\n      \"name\": \"advertiser_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Ad name\",\n      \"name\": \"ad_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Creative id\",\n      \"name\": \"creative_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status\",\n      \"name\": \"review_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Ad status\",\n      \"name\": \"ad_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Ad observations for TikTok Ads creative linkage, review status, delivery status, and landing destination.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"TikTok Ads API ads\",\n    \"spec_name\": \"tiktok_ads_api_ads\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"tiktok_ads_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "tiktok_ads"
          ]
        },
        {
          "specName": "tiktok_ads_api_creatives",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "creative_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Advertiser id",
                "name": "advertiser_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Creative name",
                "name": "creative_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Creative type",
                "name": "creative_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Video id",
                "name": "video_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed landing page URL",
                "name": "landing_page_url_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Review status",
                "name": "review_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Creative observations for videos, images, titles, call-to-action, landing page tokens, and review state.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "TikTok Ads API creatives",
              "spec_name": "tiktok_ads_api_creatives"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "tiktok_ads_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"creative_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Advertiser id\",\n      \"name\": \"advertiser_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Creative name\",\n      \"name\": \"creative_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Creative type\",\n      \"name\": \"creative_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Video id\",\n      \"name\": \"video_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed landing page URL\",\n      \"name\": \"landing_page_url_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status\",\n      \"name\": \"review_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Creative observations for videos, images, titles, call-to-action, landing page tokens, and review state.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"TikTok Ads API creatives\",\n    \"spec_name\": \"tiktok_ads_api_creatives\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"tiktok_ads_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "tiktok_ads"
          ]
        },
        {
          "specName": "tiktok_ads_api_spark_posts",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "spark_post_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Advertiser id",
                "name": "advertiser_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Hashed post id",
                "name": "post_id_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed creator id",
                "name": "creator_id_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Authorization status",
                "name": "authorization_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Post status",
                "name": "post_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Spark post observations for organic post authorization, creator-safe token, and paid amplification review.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "TikTok Ads API Spark posts",
              "spec_name": "tiktok_ads_api_spark_posts"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "tiktok_ads_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"spark_post_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Advertiser id\",\n      \"name\": \"advertiser_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed post id\",\n      \"name\": \"post_id_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed creator id\",\n      \"name\": \"creator_id_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Authorization status\",\n      \"name\": \"authorization_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Post status\",\n      \"name\": \"post_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Spark post observations for organic post authorization, creator-safe token, and paid amplification review.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"TikTok Ads API Spark posts\",\n    \"spec_name\": \"tiktok_ads_api_spark_posts\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"tiktok_ads_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "tiktok_ads"
          ]
        },
        {
          "specName": "tiktok_ads_api_catalogs",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "catalog_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Advertiser id",
                "name": "advertiser_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Catalog name",
                "name": "catalog_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Catalog vertical",
                "name": "vertical",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Catalog status",
                "name": "catalog_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Product count",
                "name": "product_count",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Catalog observations for TikTok product catalogs used in ads and commerce campaigns.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "TikTok Ads API catalogs",
              "spec_name": "tiktok_ads_api_catalogs"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "tiktok_ads_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"catalog_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Advertiser id\",\n      \"name\": \"advertiser_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Catalog name\",\n      \"name\": \"catalog_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Catalog vertical\",\n      \"name\": \"vertical\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Catalog status\",\n      \"name\": \"catalog_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Product count\",\n      \"name\": \"product_count\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Catalog observations for TikTok product catalogs used in ads and commerce campaigns.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"TikTok Ads API catalogs\",\n    \"spec_name\": \"tiktok_ads_api_catalogs\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"tiktok_ads_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "tiktok_ads"
          ]
        },
        {
          "specName": "tiktok_ads_api_catalog_products",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "catalog_product_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Catalog id",
                "name": "catalog_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Item id",
                "name": "item_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "SKU",
                "name": "sku",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Product title",
                "name": "title",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Price amount",
                "name": "price_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Availability",
                "name": "availability",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Catalog product observations for TikTok ad catalogs, item ids, price, availability, and review state.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "TikTok Ads API catalog products",
              "spec_name": "tiktok_ads_api_catalog_products"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "tiktok_ads_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"catalog_product_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Catalog id\",\n      \"name\": \"catalog_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Item id\",\n      \"name\": \"item_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"SKU\",\n      \"name\": \"sku\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Product title\",\n      \"name\": \"title\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Price amount\",\n      \"name\": \"price_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Availability\",\n      \"name\": \"availability\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Catalog product observations for TikTok ad catalogs, item ids, price, availability, and review state.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"TikTok Ads API catalog products\",\n    \"spec_name\": \"tiktok_ads_api_catalog_products\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"tiktok_ads_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "tiktok_ads"
          ]
        },
        {
          "specName": "tiktok_ads_api_product_sets",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "product_set_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Catalog id",
                "name": "catalog_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Product set name",
                "name": "product_set_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Rule summary",
                "name": "rule_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Product count",
                "name": "product_count",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Product set observations for catalog segmentation, rules, and campaign eligibility.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "TikTok Ads API product sets",
              "spec_name": "tiktok_ads_api_product_sets"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "tiktok_ads_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"product_set_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Catalog id\",\n      \"name\": \"catalog_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Product set name\",\n      \"name\": \"product_set_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Rule summary\",\n      \"name\": \"rule_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Product count\",\n      \"name\": \"product_count\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Product set observations for catalog segmentation, rules, and campaign eligibility.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"TikTok Ads API product sets\",\n    \"spec_name\": \"tiktok_ads_api_product_sets\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"tiktok_ads_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "tiktok_ads"
          ]
        },
        {
          "specName": "tiktok_ads_api_pixels",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "pixel_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Advertiser id",
                "name": "advertiser_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Pixel name",
                "name": "pixel_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Pixel status",
                "name": "pixel_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Last fired timestamp",
                "name": "last_fired_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Pixel observations for web event setup, connected advertiser, status, and event coverage.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "TikTok Ads API pixels",
              "spec_name": "tiktok_ads_api_pixels"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "tiktok_ads_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"pixel_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Advertiser id\",\n      \"name\": \"advertiser_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Pixel name\",\n      \"name\": \"pixel_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Pixel status\",\n      \"name\": \"pixel_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Last fired timestamp\",\n      \"name\": \"last_fired_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Pixel observations for web event setup, connected advertiser, status, and event coverage.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"TikTok Ads API pixels\",\n    \"spec_name\": \"tiktok_ads_api_pixels\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"tiktok_ads_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "tiktok_ads"
          ]
        },
        {
          "specName": "tiktok_ads_api_events",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "event_observation_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Advertiser id",
                "name": "advertiser_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Pixel id",
                "name": "pixel_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Event name",
                "name": "event_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Event date",
                "name": "event_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Event count",
                "name": "event_count",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Match quality",
                "name": "match_quality",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Event observations for TikTok pixel or events API activity, event names, match quality, and diagnostics.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "TikTok Ads API events",
              "spec_name": "tiktok_ads_api_events"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "tiktok_ads_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"event_observation_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Advertiser id\",\n      \"name\": \"advertiser_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Pixel id\",\n      \"name\": \"pixel_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Event name\",\n      \"name\": \"event_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Event date\",\n      \"name\": \"event_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Event count\",\n      \"name\": \"event_count\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Match quality\",\n      \"name\": \"match_quality\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Event observations for TikTok pixel or events API activity, event names, match quality, and diagnostics.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"TikTok Ads API events\",\n    \"spec_name\": \"tiktok_ads_api_events\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"tiktok_ads_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "tiktok_ads"
          ]
        },
        {
          "specName": "tiktok_ads_api_audiences",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "audience_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Advertiser id",
                "name": "advertiser_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Audience name",
                "name": "audience_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Audience type",
                "name": "audience_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Audience status",
                "name": "audience_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Audience size",
                "name": "audience_size",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Audience observations for custom, lookalike, engagement, or customer-file audiences and availability.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "TikTok Ads API audiences",
              "spec_name": "tiktok_ads_api_audiences"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "tiktok_ads_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"audience_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Advertiser id\",\n      \"name\": \"advertiser_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Audience name\",\n      \"name\": \"audience_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Audience type\",\n      \"name\": \"audience_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Audience status\",\n      \"name\": \"audience_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Audience size\",\n      \"name\": \"audience_size\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Audience observations for custom, lookalike, engagement, or customer-file audiences and availability.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"TikTok Ads API audiences\",\n    \"spec_name\": \"tiktok_ads_api_audiences\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"tiktok_ads_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "tiktok_ads"
          ]
        },
        {
          "specName": "tiktok_ads_api_performance_metrics",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "tiktok_ads_performance_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Advertiser id",
                "name": "advertiser_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Resource type",
                "name": "resource_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Resource id",
                "name": "resource_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Metric date",
                "name": "date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Spend amount",
                "name": "spend_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Impressions",
                "name": "impressions",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Clicks",
                "name": "clicks",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Conversions",
                "name": "conversions",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Daily TikTok Ads performance observations for campaigns, ad groups, ads, spend, impressions, clicks, conversions, and revenue.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "TikTok Ads API performance metrics",
              "spec_name": "tiktok_ads_api_performance_metrics"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "tiktok_ads_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"tiktok_ads_performance_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Advertiser id\",\n      \"name\": \"advertiser_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Resource type\",\n      \"name\": \"resource_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Resource id\",\n      \"name\": \"resource_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Metric date\",\n      \"name\": \"date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Spend amount\",\n      \"name\": \"spend_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Impressions\",\n      \"name\": \"impressions\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Clicks\",\n      \"name\": \"clicks\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Conversions\",\n      \"name\": \"conversions\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Daily TikTok Ads performance observations for campaigns, ad groups, ads, spend, impressions, clicks, conversions, and revenue.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"TikTok Ads API performance metrics\",\n    \"spec_name\": \"tiktok_ads_api_performance_metrics\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"tiktok_ads_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "tiktok_ads"
          ]
        },
        {
          "specName": "tiktok_ads_api_product_performance",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "tiktok_product_performance_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Advertiser id",
                "name": "advertiser_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Catalog id",
                "name": "catalog_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Item id",
                "name": "item_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "SKU",
                "name": "sku",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Metric date",
                "name": "date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Spend amount",
                "name": "spend_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Conversions",
                "name": "conversions",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Revenue amount",
                "name": "revenue_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "TikTok catalog or shop product performance observations for item-level spend, conversions, revenue, and ROAS review.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "TikTok Ads API product performance",
              "spec_name": "tiktok_ads_api_product_performance"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "tiktok_ads_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"tiktok_product_performance_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Advertiser id\",\n      \"name\": \"advertiser_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Catalog id\",\n      \"name\": \"catalog_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Item id\",\n      \"name\": \"item_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"SKU\",\n      \"name\": \"sku\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Metric date\",\n      \"name\": \"date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Spend amount\",\n      \"name\": \"spend_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Conversions\",\n      \"name\": \"conversions\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Revenue amount\",\n      \"name\": \"revenue_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"TikTok catalog or shop product performance observations for item-level spend, conversions, revenue, and ROAS review.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"TikTok Ads API product performance\",\n    \"spec_name\": \"tiktok_ads_api_product_performance\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"tiktok_ads_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "tiktok_ads"
          ]
        },
        {
          "specName": "tiktok_ads_api_comments",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "comment_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Advertiser id",
                "name": "advertiser_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Ad id",
                "name": "ad_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed post id",
                "name": "post_id_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed comment text",
                "name": "comment_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Sentiment",
                "name": "sentiment",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Moderation status",
                "name": "moderation_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Comment observations for ad or organic content moderation, sentiment, and response queues where API access is available.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "TikTok Ads API comments",
              "spec_name": "tiktok_ads_api_comments"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "tiktok_ads_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"comment_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Advertiser id\",\n      \"name\": \"advertiser_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Ad id\",\n      \"name\": \"ad_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed post id\",\n      \"name\": \"post_id_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed comment text\",\n      \"name\": \"comment_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Sentiment\",\n      \"name\": \"sentiment\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Moderation status\",\n      \"name\": \"moderation_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Comment observations for ad or organic content moderation, sentiment, and response queues where API access is available.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"TikTok Ads API comments\",\n    \"spec_name\": \"tiktok_ads_api_comments\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"tiktok_ads_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "tiktok_ads"
          ]
        },
        {
          "specName": "tiktok_ads_agent_api_campaign_budget_updates",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "campaign_budget_update_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "campaign_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Advertiser id",
                "name": "advertiser_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Current budget amount",
                "name": "current_budget_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Proposed budget amount",
                "name": "proposed_budget_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency code",
                "name": "currency_code",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed TikTok Ads campaign budget update proposals before outbound TikTok Ads sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "TikTok Ads agent API campaign budget updates",
              "spec_name": "tiktok_ads_agent_api_campaign_budget_updates",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "tiktok_ads_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"campaign_budget_update_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"campaign_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Advertiser id\",\n      \"name\": \"advertiser_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Current budget amount\",\n      \"name\": \"current_budget_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Proposed budget amount\",\n      \"name\": \"proposed_budget_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency code\",\n      \"name\": \"currency_code\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed TikTok Ads campaign budget update proposals before outbound TikTok Ads sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"TikTok Ads agent API campaign budget updates\",\n    \"spec_name\": \"tiktok_ads_agent_api_campaign_budget_updates\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"tiktok_ads_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "tiktok_ads"
          ]
        },
        {
          "specName": "tiktok_ads_agent_api_campaign_status_updates",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "campaign_status_update_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "campaign_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Advertiser id",
                "name": "advertiser_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Current status",
                "name": "current_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Proposed status",
                "name": "proposed_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed TikTok Ads campaign status update proposals before outbound TikTok Ads sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "TikTok Ads agent API campaign status updates",
              "spec_name": "tiktok_ads_agent_api_campaign_status_updates",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "tiktok_ads_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"campaign_status_update_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"campaign_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Advertiser id\",\n      \"name\": \"advertiser_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Current status\",\n      \"name\": \"current_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Proposed status\",\n      \"name\": \"proposed_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed TikTok Ads campaign status update proposals before outbound TikTok Ads sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"TikTok Ads agent API campaign status updates\",\n    \"spec_name\": \"tiktok_ads_agent_api_campaign_status_updates\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"tiktok_ads_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "tiktok_ads"
          ]
        },
        {
          "specName": "tiktok_ads_agent_api_ad_group_bid_updates",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "ad_group_bid_update_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "ad_group_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Advertiser id",
                "name": "advertiser_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Campaign id",
                "name": "campaign_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Current bid amount",
                "name": "current_bid_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Proposed bid amount",
                "name": "proposed_bid_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency code",
                "name": "currency_code",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed TikTok Ads ad group bid or budget update proposals before outbound TikTok Ads sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "TikTok Ads agent API ad group bid updates",
              "spec_name": "tiktok_ads_agent_api_ad_group_bid_updates",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "tiktok_ads_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"ad_group_bid_update_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"ad_group_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Advertiser id\",\n      \"name\": \"advertiser_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Campaign id\",\n      \"name\": \"campaign_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Current bid amount\",\n      \"name\": \"current_bid_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Proposed bid amount\",\n      \"name\": \"proposed_bid_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency code\",\n      \"name\": \"currency_code\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed TikTok Ads ad group bid or budget update proposals before outbound TikTok Ads sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"TikTok Ads agent API ad group bid updates\",\n    \"spec_name\": \"tiktok_ads_agent_api_ad_group_bid_updates\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"tiktok_ads_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "tiktok_ads"
          ]
        },
        {
          "specName": "tiktok_ads_agent_api_creative_updates",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "creative_update_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "creative_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Advertiser id",
                "name": "advertiser_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Ad id",
                "name": "ad_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Field name",
                "name": "field_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed current value",
                "name": "current_value_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed proposed value",
                "name": "proposed_value_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed TikTok Ads creative update proposals before outbound TikTok Ads sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "TikTok Ads agent API creative updates",
              "spec_name": "tiktok_ads_agent_api_creative_updates",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "tiktok_ads_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"creative_update_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"creative_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Advertiser id\",\n      \"name\": \"advertiser_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Ad id\",\n      \"name\": \"ad_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Field name\",\n      \"name\": \"field_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed current value\",\n      \"name\": \"current_value_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed proposed value\",\n      \"name\": \"proposed_value_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed TikTok Ads creative update proposals before outbound TikTok Ads sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"TikTok Ads agent API creative updates\",\n    \"spec_name\": \"tiktok_ads_agent_api_creative_updates\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"tiktok_ads_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "tiktok_ads"
          ]
        },
        {
          "specName": "tiktok_ads_agent_api_audience_updates",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "audience_update_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "audience_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Advertiser id",
                "name": "advertiser_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Audience name",
                "name": "audience_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Audience type",
                "name": "audience_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Proposed status",
                "name": "proposed_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed TikTok Ads audience create/update proposals before outbound TikTok Ads sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "TikTok Ads agent API audience updates",
              "spec_name": "tiktok_ads_agent_api_audience_updates",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "tiktok_ads_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"audience_update_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"audience_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Advertiser id\",\n      \"name\": \"advertiser_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Audience name\",\n      \"name\": \"audience_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Audience type\",\n      \"name\": \"audience_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Proposed status\",\n      \"name\": \"proposed_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed TikTok Ads audience create/update proposals before outbound TikTok Ads sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"TikTok Ads agent API audience updates\",\n    \"spec_name\": \"tiktok_ads_agent_api_audience_updates\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"tiktok_ads_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "tiktok_ads"
          ]
        },
        {
          "specName": "tiktok_ads_agent_api_catalog_product_updates",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "catalog_product_update_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "catalog_product_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Advertiser id",
                "name": "advertiser_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Catalog id",
                "name": "catalog_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "SKU",
                "name": "sku",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Field name",
                "name": "field_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed proposed value",
                "name": "proposed_value_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed TikTok Ads catalog product update proposals before outbound TikTok Ads sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "TikTok Ads agent API catalog product updates",
              "spec_name": "tiktok_ads_agent_api_catalog_product_updates",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "tiktok_ads_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"catalog_product_update_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"catalog_product_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Advertiser id\",\n      \"name\": \"advertiser_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Catalog id\",\n      \"name\": \"catalog_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"SKU\",\n      \"name\": \"sku\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Field name\",\n      \"name\": \"field_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed proposed value\",\n      \"name\": \"proposed_value_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed TikTok Ads catalog product update proposals before outbound TikTok Ads sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"TikTok Ads agent API catalog product updates\",\n    \"spec_name\": \"tiktok_ads_agent_api_catalog_product_updates\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"tiktok_ads_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "tiktok_ads"
          ]
        }
      ]
    },
    {
      "id": "commerce_reconciliation_library",
      "type": "collection",
      "domains": [
        "reconciliation",
        "commerce",
        "operations"
      ],
      "systems": [
        "commerce_reconciliation"
      ],
      "version": "1.0.0",
      "summary": "Commerce reconciliation specs for comparing customers, catalog presence, product content, prices, offers, inventory, orders, fulfillment, policy, payouts, campaigns, and storefront observations across systems.",
      "coverageStatus": "Core",
      "coverageNotes": "Reconciliation specs store findings and evidence across systems. They are not Shopify, Etsy, Stripe, Square, or HubSpot source specs; accepted fixes should flow through the appropriate direct-system commitment spec.",
      "sourceDocs": [
        {
          "label": "Airlock Spec Library JSON",
          "url": "https://reunionstudio.io/airlock/docs/spec-library.json"
        }
      ],
      "nextObjects": [
        "customer_merge_commitments",
        "canonical_product_master",
        "content_approval_workflow",
        "cross-system freshness expectations",
        "automated issue routing",
        "reconciliation run summaries"
      ],
      "omittedObjects": [
        "opaque sync jobs",
        "raw buyer PII",
        "unreviewed automatic writes",
        "screen-scraped secrets",
        "provider credentials"
      ],
      "needs": [
        "A commerce reconciliation agent/operator role. The generated reconciliation calls use commerce_reconciliation_agent; website observations use website_storefront_agent."
      ],
      "usefulFor": [
        "Finding missing products across systems",
        "Comparing website pages to Shopify and marketplaces",
        "Reviewing price and offer disagreement",
        "Catching inventory and fulfillment drift",
        "Comparing HubSpot contacts, deals, campaigns, invoices, and payments with commerce and ad systems",
        "Routing accepted fixes to Shopify, Etsy, TikTok, Amazon, Google Merchant Center, HubSpot, Stripe, Square, QuickBooks, or NetSuite specs"
      ],
      "extendWith": [
        "Copyable source-link calls from findings into target commitment specs",
        "Run-level freshness expectations",
        "Issue creation proposals for unresolved discrepancies",
        "Canonical source priority rules by field and system"
      ],
      "searchTerms": [
        "reconciliation",
        "integration",
        "sync",
        "catalog drift",
        "missing products",
        "price mismatch",
        "offer mismatch",
        "inventory mismatch",
        "customer identity",
        "order sync",
        "marketplace policy",
        "website storefront",
        "pdp",
        "product pages"
      ],
      "links": [
        {
          "from": "commerce_catalog_presence_reconciliation",
          "to": "shopify_api_products",
          "kind": "source_link",
          "description": "Catalog findings can cite Shopify product observations."
        },
        {
          "from": "commerce_catalog_presence_reconciliation",
          "to": "tiktok_shop_api_products",
          "kind": "source_link",
          "description": "Catalog findings can cite TikTok Shop product observations."
        },
        {
          "from": "commerce_catalog_presence_reconciliation",
          "to": "amazon_sp_api_listings_items",
          "kind": "source_link",
          "description": "Catalog findings can cite Amazon listing observations."
        },
        {
          "from": "commerce_product_content_reconciliation",
          "to": "website_storefront_product_pages",
          "kind": "source_link",
          "description": "Product content findings can cite rendered website product-page observations."
        },
        {
          "from": "commerce_product_content_reconciliation",
          "to": "google_merchant_center_api_products",
          "kind": "source_link",
          "description": "Product content findings can cite Merchant Center product observations."
        },
        {
          "from": "commerce_product_content_reconciliation",
          "to": "amazon_sp_api_catalog_items",
          "kind": "source_link",
          "description": "Product content findings can cite Amazon catalog item observations."
        },
        {
          "from": "commerce_price_offer_reconciliation",
          "to": "website_storefront_product_offers",
          "kind": "source_link",
          "description": "Price findings can cite visible website offer observations."
        },
        {
          "from": "commerce_price_offer_reconciliation",
          "to": "tiktok_shop_api_skus",
          "kind": "source_link",
          "description": "Price findings can cite TikTok Shop SKU observations."
        },
        {
          "from": "commerce_price_offer_reconciliation",
          "to": "amazon_sp_api_offers_pricing",
          "kind": "source_link",
          "description": "Price findings can cite Amazon offer and pricing observations."
        },
        {
          "from": "commerce_inventory_availability_reconciliation",
          "to": "shopify_api_inventory_levels",
          "kind": "source_link",
          "description": "Inventory findings can cite Shopify inventory observations."
        },
        {
          "from": "commerce_inventory_availability_reconciliation",
          "to": "tiktok_shop_api_inventory_levels",
          "kind": "source_link",
          "description": "Inventory findings can cite TikTok Shop inventory observations."
        },
        {
          "from": "commerce_inventory_availability_reconciliation",
          "to": "amazon_sp_api_fba_inventory",
          "kind": "source_link",
          "description": "Inventory findings can cite Amazon FBA inventory observations."
        },
        {
          "from": "commerce_customer_identity_reconciliation",
          "to": "hubspot_api_contacts",
          "kind": "source_link",
          "description": "Customer identity findings can cite HubSpot contact observations."
        },
        {
          "from": "commerce_order_sync_reconciliation",
          "to": "tiktok_shop_api_orders",
          "kind": "source_link",
          "description": "Order sync findings can cite TikTok Shop order observations."
        },
        {
          "from": "commerce_order_sync_reconciliation",
          "to": "amazon_sp_api_orders",
          "kind": "source_link",
          "description": "Order sync findings can cite Amazon order observations."
        },
        {
          "from": "commerce_order_sync_reconciliation",
          "to": "hubspot_api_deals",
          "kind": "source_link",
          "description": "Order sync findings can cite HubSpot deal observations."
        },
        {
          "from": "commerce_marketplace_policy_reconciliation",
          "to": "amazon_sp_api_listing_issues",
          "kind": "source_link",
          "description": "Marketplace policy findings can cite Amazon listing issue observations."
        },
        {
          "from": "commerce_promotion_campaign_reconciliation",
          "to": "hubspot_marketing_api_campaigns",
          "kind": "source_link",
          "description": "Promotion and campaign findings can cite HubSpot campaign observations."
        },
        {
          "from": "commerce_promotion_campaign_reconciliation",
          "to": "hubspot_marketing_api_campaign_performance",
          "kind": "source_link",
          "description": "Promotion and campaign findings can cite HubSpot campaign performance observations."
        },
        {
          "from": "commerce_settlement_payout_reconciliation",
          "to": "hubspot_commerce_api_payments",
          "kind": "source_link",
          "description": "Settlement findings can cite HubSpot payment observations."
        },
        {
          "from": "commerce_settlement_payout_reconciliation",
          "to": "hubspot_commerce_api_invoices",
          "kind": "source_link",
          "description": "Settlement findings can cite HubSpot invoice observations."
        },
        {
          "from": "commerce_settlement_payout_reconciliation",
          "to": "stripe_api_payouts",
          "kind": "source_link",
          "description": "Settlement findings can cite Stripe payout observations."
        }
      ],
      "installedSpecs": [
        {
          "id": "website_storefront_product_pages",
          "domain": "Website observation",
          "purpose": "Rendered product-page observations.",
          "systems": [
            "website_storefront"
          ]
        },
        {
          "id": "website_storefront_product_offers",
          "domain": "Website observation",
          "purpose": "Visible offer and price observations.",
          "systems": [
            "website_storefront"
          ]
        },
        {
          "id": "website_storefront_structured_data",
          "domain": "Website observation",
          "purpose": "Structured data observations.",
          "systems": [
            "website_storefront"
          ]
        },
        {
          "id": "website_storefront_collection_pages",
          "domain": "Website observation",
          "purpose": "Collection page observations.",
          "systems": [
            "website_storefront"
          ]
        },
        {
          "id": "website_storefront_checkout_availability",
          "domain": "Website observation",
          "purpose": "Checkout availability observations.",
          "systems": [
            "website_storefront"
          ]
        },
        {
          "id": "commerce_customer_identity_reconciliation",
          "domain": "Reconciliation",
          "purpose": "Customer identity reconciliation findings.",
          "systems": [
            "commerce_reconciliation"
          ]
        },
        {
          "id": "commerce_catalog_presence_reconciliation",
          "domain": "Reconciliation",
          "purpose": "Catalog presence reconciliation findings.",
          "systems": [
            "commerce_reconciliation"
          ]
        },
        {
          "id": "commerce_product_content_reconciliation",
          "domain": "Reconciliation",
          "purpose": "Product content reconciliation findings.",
          "systems": [
            "commerce_reconciliation"
          ]
        },
        {
          "id": "commerce_price_offer_reconciliation",
          "domain": "Reconciliation",
          "purpose": "Price and offer reconciliation findings.",
          "systems": [
            "commerce_reconciliation"
          ]
        },
        {
          "id": "commerce_inventory_availability_reconciliation",
          "domain": "Reconciliation",
          "purpose": "Inventory availability reconciliation findings.",
          "systems": [
            "commerce_reconciliation"
          ]
        },
        {
          "id": "commerce_order_sync_reconciliation",
          "domain": "Reconciliation",
          "purpose": "Order sync reconciliation findings.",
          "systems": [
            "commerce_reconciliation"
          ]
        },
        {
          "id": "commerce_fulfillment_tracking_reconciliation",
          "domain": "Reconciliation",
          "purpose": "Fulfillment tracking reconciliation findings.",
          "systems": [
            "commerce_reconciliation"
          ]
        },
        {
          "id": "commerce_marketplace_policy_reconciliation",
          "domain": "Reconciliation",
          "purpose": "Marketplace policy reconciliation findings.",
          "systems": [
            "commerce_reconciliation"
          ]
        },
        {
          "id": "commerce_settlement_payout_reconciliation",
          "domain": "Reconciliation",
          "purpose": "Settlement and payout reconciliation findings.",
          "systems": [
            "commerce_reconciliation"
          ]
        },
        {
          "id": "commerce_promotion_campaign_reconciliation",
          "domain": "Reconciliation",
          "purpose": "Promotion and campaign reconciliation findings.",
          "systems": [
            "commerce_reconciliation"
          ]
        }
      ],
      "createSpecPayloads": [
        {
          "specName": "website_storefront_product_pages",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "product_page_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Website or storefront id",
                "name": "site_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Hashed page URL",
                "name": "page_url_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed canonical URL",
                "name": "canonical_url_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "SKU",
                "name": "sku",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Product title",
                "name": "product_title",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Availability",
                "name": "availability",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Website product-page observations for canonical URL, title, description, media, availability, and published content review.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Website storefront product pages",
              "spec_name": "website_storefront_product_pages"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "website_storefront_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"product_page_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Website or storefront id\",\n      \"name\": \"site_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed page URL\",\n      \"name\": \"page_url_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed canonical URL\",\n      \"name\": \"canonical_url_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"SKU\",\n      \"name\": \"sku\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Product title\",\n      \"name\": \"product_title\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Availability\",\n      \"name\": \"availability\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Website product-page observations for canonical URL, title, description, media, availability, and published content review.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Website storefront product pages\",\n    \"spec_name\": \"website_storefront_product_pages\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"website_storefront_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "website_storefront"
          ],
          "relatedSystems": []
        },
        {
          "specName": "website_storefront_product_offers",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "product_offer_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Product page id",
                "name": "product_page_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "SKU",
                "name": "sku",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Variant key",
                "name": "variant_key",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Price amount",
                "name": "price_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Sale price amount",
                "name": "sale_price_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency code",
                "name": "currency_code",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Website offer observations for visible price, sale price, currency, availability, and variant selection.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Website storefront product offers",
              "spec_name": "website_storefront_product_offers"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "website_storefront_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"product_offer_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Product page id\",\n      \"name\": \"product_page_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"SKU\",\n      \"name\": \"sku\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Variant key\",\n      \"name\": \"variant_key\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Price amount\",\n      \"name\": \"price_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Sale price amount\",\n      \"name\": \"sale_price_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency code\",\n      \"name\": \"currency_code\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Website offer observations for visible price, sale price, currency, availability, and variant selection.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Website storefront product offers\",\n    \"spec_name\": \"website_storefront_product_offers\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"website_storefront_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "website_storefront"
          ],
          "relatedSystems": []
        },
        {
          "specName": "website_storefront_structured_data",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "structured_data_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Product page id",
                "name": "product_page_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed page URL",
                "name": "page_url_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Schema type",
                "name": "schema_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "SKU",
                "name": "sku",
                "tests": [],
                "type": "string"
              },
              {
                "description": "GTIN or other product id",
                "name": "gtin",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Validation status",
                "name": "validation_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Structured data observations for product, offer, review, breadcrumb, and merchant metadata extracted from storefront pages.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Website storefront structured data",
              "spec_name": "website_storefront_structured_data"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "website_storefront_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"structured_data_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Product page id\",\n      \"name\": \"product_page_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed page URL\",\n      \"name\": \"page_url_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Schema type\",\n      \"name\": \"schema_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"SKU\",\n      \"name\": \"sku\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"GTIN or other product id\",\n      \"name\": \"gtin\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Validation status\",\n      \"name\": \"validation_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Structured data observations for product, offer, review, breadcrumb, and merchant metadata extracted from storefront pages.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Website storefront structured data\",\n    \"spec_name\": \"website_storefront_structured_data\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"website_storefront_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "website_storefront"
          ],
          "relatedSystems": []
        },
        {
          "specName": "website_storefront_collection_pages",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "collection_page_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Website or storefront id",
                "name": "site_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Hashed collection URL",
                "name": "collection_url_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Collection name",
                "name": "collection_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Product count",
                "name": "product_count",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Visible active product count",
                "name": "visible_active_count",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Collection or category page observations for displayed products, sort placement, merchandising, and availability review.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Website storefront collection pages",
              "spec_name": "website_storefront_collection_pages"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "website_storefront_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"collection_page_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Website or storefront id\",\n      \"name\": \"site_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed collection URL\",\n      \"name\": \"collection_url_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Collection name\",\n      \"name\": \"collection_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Product count\",\n      \"name\": \"product_count\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Visible active product count\",\n      \"name\": \"visible_active_count\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Collection or category page observations for displayed products, sort placement, merchandising, and availability review.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Website storefront collection pages\",\n    \"spec_name\": \"website_storefront_collection_pages\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"website_storefront_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "website_storefront"
          ],
          "relatedSystems": []
        },
        {
          "specName": "website_storefront_checkout_availability",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "checkout_availability_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Website or storefront id",
                "name": "site_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "SKU",
                "name": "sku",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Variant key",
                "name": "variant_key",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Cart status",
                "name": "cart_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Checkout status",
                "name": "checkout_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observed price amount",
                "name": "observed_price_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency code",
                "name": "currency_code",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Checkout availability observations for whether a SKU can be added to cart and reaches checkout with expected price and shipping state.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Website storefront checkout availability",
              "spec_name": "website_storefront_checkout_availability"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "website_storefront_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"checkout_availability_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Website or storefront id\",\n      \"name\": \"site_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"SKU\",\n      \"name\": \"sku\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Variant key\",\n      \"name\": \"variant_key\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Cart status\",\n      \"name\": \"cart_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Checkout status\",\n      \"name\": \"checkout_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observed price amount\",\n      \"name\": \"observed_price_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency code\",\n      \"name\": \"currency_code\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Checkout availability observations for whether a SKU can be added to cart and reaches checkout with expected price and shipping state.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Website storefront checkout availability\",\n    \"spec_name\": \"website_storefront_checkout_availability\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"website_storefront_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "website_storefront"
          ],
          "relatedSystems": []
        },
        {
          "specName": "commerce_customer_identity_reconciliation",
          "specConfig": {
            "column_config": [
              {
                "description": "Reconciliation finding id",
                "name": "customer_identity_finding_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the finding was produced",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "First compared system",
                "name": "left_system",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "First compared spec",
                "name": "left_spec",
                "tests": [],
                "type": "string"
              },
              {
                "description": "First compared record id",
                "name": "left_record_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Second compared system",
                "name": "right_system",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Second compared spec",
                "name": "right_spec",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Second compared record id",
                "name": "right_record_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Identifier used for matching, such as sku, email_hash, product_url_hash, or order_number",
                "name": "match_key_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Matched identifier value or token",
                "name": "match_key_value",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Mismatch type",
                "name": "discrepancy_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Business severity",
                "name": "severity",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language business impact",
                "name": "business_impact",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Role or team that should review the finding",
                "name": "recommended_owner",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Suggested next action",
                "name": "recommended_action",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Suggested outbound commitment spec for an accepted fix",
                "name": "suggested_commitment_spec",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Finding status",
                "name": "status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Hashed customer email",
                "name": "customer_email_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed customer phone",
                "name": "customer_phone_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External customer key or token",
                "name": "external_customer_key",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Compared values, source file references, and agent evidence for the finding.",
                "name": "evidence",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Customer identity reconciliation findings across commerce, billing, CRM, support, and marketplace systems.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Commerce customer identity reconciliation",
              "spec_name": "commerce_customer_identity_reconciliation"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "commerce_reconciliation_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Reconciliation finding id\",\n      \"name\": \"customer_identity_finding_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the finding was produced\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"First compared system\",\n      \"name\": \"left_system\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"First compared spec\",\n      \"name\": \"left_spec\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"First compared record id\",\n      \"name\": \"left_record_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Second compared system\",\n      \"name\": \"right_system\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Second compared spec\",\n      \"name\": \"right_spec\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Second compared record id\",\n      \"name\": \"right_record_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Identifier used for matching, such as sku, email_hash, product_url_hash, or order_number\",\n      \"name\": \"match_key_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Matched identifier value or token\",\n      \"name\": \"match_key_value\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Mismatch type\",\n      \"name\": \"discrepancy_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Business severity\",\n      \"name\": \"severity\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language business impact\",\n      \"name\": \"business_impact\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Role or team that should review the finding\",\n      \"name\": \"recommended_owner\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Suggested next action\",\n      \"name\": \"recommended_action\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Suggested outbound commitment spec for an accepted fix\",\n      \"name\": \"suggested_commitment_spec\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Finding status\",\n      \"name\": \"status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed customer email\",\n      \"name\": \"customer_email_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed customer phone\",\n      \"name\": \"customer_phone_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External customer key or token\",\n      \"name\": \"external_customer_key\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Compared values, source file references, and agent evidence for the finding.\",\n      \"name\": \"evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Customer identity reconciliation findings across commerce, billing, CRM, support, and marketplace systems.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Commerce customer identity reconciliation\",\n    \"spec_name\": \"commerce_customer_identity_reconciliation\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"commerce_reconciliation_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "commerce_reconciliation"
          ],
          "relatedSystems": [
            "hubspot",
            "stripe",
            "square",
            "shopify",
            "etsy"
          ]
        },
        {
          "specName": "commerce_catalog_presence_reconciliation",
          "specConfig": {
            "column_config": [
              {
                "description": "Reconciliation finding id",
                "name": "catalog_presence_finding_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the finding was produced",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "First compared system",
                "name": "left_system",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "First compared spec",
                "name": "left_spec",
                "tests": [],
                "type": "string"
              },
              {
                "description": "First compared record id",
                "name": "left_record_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Second compared system",
                "name": "right_system",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Second compared spec",
                "name": "right_spec",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Second compared record id",
                "name": "right_record_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Identifier used for matching, such as sku, email_hash, product_url_hash, or order_number",
                "name": "match_key_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Matched identifier value or token",
                "name": "match_key_value",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Mismatch type",
                "name": "discrepancy_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Business severity",
                "name": "severity",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language business impact",
                "name": "business_impact",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Role or team that should review the finding",
                "name": "recommended_owner",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Suggested next action",
                "name": "recommended_action",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Suggested outbound commitment spec for an accepted fix",
                "name": "suggested_commitment_spec",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Finding status",
                "name": "status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "SKU",
                "name": "sku",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Product id",
                "name": "product_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "First system presence state",
                "name": "left_presence_state",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Second system presence state",
                "name": "right_presence_state",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Compared values, source file references, and agent evidence for the finding.",
                "name": "evidence",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Catalog presence findings for products or SKUs missing, duplicated, inactive, or unexpectedly visible across sales surfaces.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Commerce catalog presence reconciliation",
              "spec_name": "commerce_catalog_presence_reconciliation"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "commerce_reconciliation_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Reconciliation finding id\",\n      \"name\": \"catalog_presence_finding_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the finding was produced\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"First compared system\",\n      \"name\": \"left_system\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"First compared spec\",\n      \"name\": \"left_spec\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"First compared record id\",\n      \"name\": \"left_record_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Second compared system\",\n      \"name\": \"right_system\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Second compared spec\",\n      \"name\": \"right_spec\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Second compared record id\",\n      \"name\": \"right_record_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Identifier used for matching, such as sku, email_hash, product_url_hash, or order_number\",\n      \"name\": \"match_key_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Matched identifier value or token\",\n      \"name\": \"match_key_value\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Mismatch type\",\n      \"name\": \"discrepancy_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Business severity\",\n      \"name\": \"severity\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language business impact\",\n      \"name\": \"business_impact\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Role or team that should review the finding\",\n      \"name\": \"recommended_owner\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Suggested next action\",\n      \"name\": \"recommended_action\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Suggested outbound commitment spec for an accepted fix\",\n      \"name\": \"suggested_commitment_spec\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Finding status\",\n      \"name\": \"status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"SKU\",\n      \"name\": \"sku\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Product id\",\n      \"name\": \"product_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"First system presence state\",\n      \"name\": \"left_presence_state\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Second system presence state\",\n      \"name\": \"right_presence_state\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Compared values, source file references, and agent evidence for the finding.\",\n      \"name\": \"evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Catalog presence findings for products or SKUs missing, duplicated, inactive, or unexpectedly visible across sales surfaces.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Commerce catalog presence reconciliation\",\n    \"spec_name\": \"commerce_catalog_presence_reconciliation\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"commerce_reconciliation_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "commerce_reconciliation"
          ],
          "relatedSystems": [
            "website_storefront",
            "shopify",
            "etsy",
            "tiktok_shop",
            "amazon_selling_partner",
            "google_merchant_center"
          ]
        },
        {
          "specName": "commerce_product_content_reconciliation",
          "specConfig": {
            "column_config": [
              {
                "description": "Reconciliation finding id",
                "name": "product_content_finding_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the finding was produced",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "First compared system",
                "name": "left_system",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "First compared spec",
                "name": "left_spec",
                "tests": [],
                "type": "string"
              },
              {
                "description": "First compared record id",
                "name": "left_record_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Second compared system",
                "name": "right_system",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Second compared spec",
                "name": "right_spec",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Second compared record id",
                "name": "right_record_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Identifier used for matching, such as sku, email_hash, product_url_hash, or order_number",
                "name": "match_key_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Matched identifier value or token",
                "name": "match_key_value",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Mismatch type",
                "name": "discrepancy_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Business severity",
                "name": "severity",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language business impact",
                "name": "business_impact",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Role or team that should review the finding",
                "name": "recommended_owner",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Suggested next action",
                "name": "recommended_action",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Suggested outbound commitment spec for an accepted fix",
                "name": "suggested_commitment_spec",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Finding status",
                "name": "status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "SKU",
                "name": "sku",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Compared field",
                "name": "field_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed first value",
                "name": "left_value_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed second value",
                "name": "right_value_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed recommended value",
                "name": "canonical_value_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Compared values, source file references, and agent evidence for the finding.",
                "name": "evidence",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Product content findings for title, description, images, category, tags, structured data, or PDP copy disagreement.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Commerce product content reconciliation",
              "spec_name": "commerce_product_content_reconciliation"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "commerce_reconciliation_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Reconciliation finding id\",\n      \"name\": \"product_content_finding_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the finding was produced\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"First compared system\",\n      \"name\": \"left_system\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"First compared spec\",\n      \"name\": \"left_spec\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"First compared record id\",\n      \"name\": \"left_record_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Second compared system\",\n      \"name\": \"right_system\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Second compared spec\",\n      \"name\": \"right_spec\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Second compared record id\",\n      \"name\": \"right_record_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Identifier used for matching, such as sku, email_hash, product_url_hash, or order_number\",\n      \"name\": \"match_key_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Matched identifier value or token\",\n      \"name\": \"match_key_value\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Mismatch type\",\n      \"name\": \"discrepancy_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Business severity\",\n      \"name\": \"severity\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language business impact\",\n      \"name\": \"business_impact\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Role or team that should review the finding\",\n      \"name\": \"recommended_owner\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Suggested next action\",\n      \"name\": \"recommended_action\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Suggested outbound commitment spec for an accepted fix\",\n      \"name\": \"suggested_commitment_spec\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Finding status\",\n      \"name\": \"status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"SKU\",\n      \"name\": \"sku\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Compared field\",\n      \"name\": \"field_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed first value\",\n      \"name\": \"left_value_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed second value\",\n      \"name\": \"right_value_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed recommended value\",\n      \"name\": \"canonical_value_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Compared values, source file references, and agent evidence for the finding.\",\n      \"name\": \"evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Product content findings for title, description, images, category, tags, structured data, or PDP copy disagreement.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Commerce product content reconciliation\",\n    \"spec_name\": \"commerce_product_content_reconciliation\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"commerce_reconciliation_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "commerce_reconciliation"
          ],
          "relatedSystems": [
            "website_storefront",
            "shopify",
            "etsy",
            "amazon_selling_partner",
            "google_merchant_center"
          ]
        },
        {
          "specName": "commerce_price_offer_reconciliation",
          "specConfig": {
            "column_config": [
              {
                "description": "Reconciliation finding id",
                "name": "price_offer_finding_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the finding was produced",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "First compared system",
                "name": "left_system",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "First compared spec",
                "name": "left_spec",
                "tests": [],
                "type": "string"
              },
              {
                "description": "First compared record id",
                "name": "left_record_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Second compared system",
                "name": "right_system",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Second compared spec",
                "name": "right_spec",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Second compared record id",
                "name": "right_record_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Identifier used for matching, such as sku, email_hash, product_url_hash, or order_number",
                "name": "match_key_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Matched identifier value or token",
                "name": "match_key_value",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Mismatch type",
                "name": "discrepancy_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Business severity",
                "name": "severity",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language business impact",
                "name": "business_impact",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Role or team that should review the finding",
                "name": "recommended_owner",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Suggested next action",
                "name": "recommended_action",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Suggested outbound commitment spec for an accepted fix",
                "name": "suggested_commitment_spec",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Finding status",
                "name": "status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "SKU",
                "name": "sku",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Currency code",
                "name": "currency_code",
                "tests": [],
                "type": "string"
              },
              {
                "description": "First system price amount",
                "name": "left_price_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Second system price amount",
                "name": "right_price_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "First offer status",
                "name": "left_offer_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Second offer status",
                "name": "right_offer_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Compared values, source file references, and agent evidence for the finding.",
                "name": "evidence",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Price and offer findings for base price, sale price, discounts, bundles, marketplace offers, and visible storefront prices.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Commerce price offer reconciliation",
              "spec_name": "commerce_price_offer_reconciliation"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "commerce_reconciliation_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Reconciliation finding id\",\n      \"name\": \"price_offer_finding_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the finding was produced\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"First compared system\",\n      \"name\": \"left_system\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"First compared spec\",\n      \"name\": \"left_spec\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"First compared record id\",\n      \"name\": \"left_record_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Second compared system\",\n      \"name\": \"right_system\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Second compared spec\",\n      \"name\": \"right_spec\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Second compared record id\",\n      \"name\": \"right_record_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Identifier used for matching, such as sku, email_hash, product_url_hash, or order_number\",\n      \"name\": \"match_key_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Matched identifier value or token\",\n      \"name\": \"match_key_value\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Mismatch type\",\n      \"name\": \"discrepancy_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Business severity\",\n      \"name\": \"severity\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language business impact\",\n      \"name\": \"business_impact\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Role or team that should review the finding\",\n      \"name\": \"recommended_owner\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Suggested next action\",\n      \"name\": \"recommended_action\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Suggested outbound commitment spec for an accepted fix\",\n      \"name\": \"suggested_commitment_spec\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Finding status\",\n      \"name\": \"status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"SKU\",\n      \"name\": \"sku\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Currency code\",\n      \"name\": \"currency_code\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"First system price amount\",\n      \"name\": \"left_price_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Second system price amount\",\n      \"name\": \"right_price_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"First offer status\",\n      \"name\": \"left_offer_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Second offer status\",\n      \"name\": \"right_offer_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Compared values, source file references, and agent evidence for the finding.\",\n      \"name\": \"evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Price and offer findings for base price, sale price, discounts, bundles, marketplace offers, and visible storefront prices.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Commerce price offer reconciliation\",\n    \"spec_name\": \"commerce_price_offer_reconciliation\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"commerce_reconciliation_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "commerce_reconciliation"
          ],
          "relatedSystems": [
            "website_storefront",
            "shopify",
            "etsy",
            "tiktok_shop",
            "amazon_selling_partner"
          ]
        },
        {
          "specName": "commerce_inventory_availability_reconciliation",
          "specConfig": {
            "column_config": [
              {
                "description": "Reconciliation finding id",
                "name": "inventory_availability_finding_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the finding was produced",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "First compared system",
                "name": "left_system",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "First compared spec",
                "name": "left_spec",
                "tests": [],
                "type": "string"
              },
              {
                "description": "First compared record id",
                "name": "left_record_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Second compared system",
                "name": "right_system",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Second compared spec",
                "name": "right_spec",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Second compared record id",
                "name": "right_record_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Identifier used for matching, such as sku, email_hash, product_url_hash, or order_number",
                "name": "match_key_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Matched identifier value or token",
                "name": "match_key_value",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Mismatch type",
                "name": "discrepancy_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Business severity",
                "name": "severity",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language business impact",
                "name": "business_impact",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Role or team that should review the finding",
                "name": "recommended_owner",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Suggested next action",
                "name": "recommended_action",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Suggested outbound commitment spec for an accepted fix",
                "name": "suggested_commitment_spec",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Finding status",
                "name": "status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "SKU",
                "name": "sku",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Location or warehouse id",
                "name": "location_or_warehouse_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "First system available quantity",
                "name": "left_available_quantity",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Second system available quantity",
                "name": "right_available_quantity",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "First availability state",
                "name": "left_availability",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Second availability state",
                "name": "right_availability",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Compared values, source file references, and agent evidence for the finding.",
                "name": "evidence",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Inventory and availability findings for quantity, stock status, warehouse/location state, marketplace active state, and checkout availability.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Commerce inventory availability reconciliation",
              "spec_name": "commerce_inventory_availability_reconciliation"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "commerce_reconciliation_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Reconciliation finding id\",\n      \"name\": \"inventory_availability_finding_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the finding was produced\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"First compared system\",\n      \"name\": \"left_system\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"First compared spec\",\n      \"name\": \"left_spec\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"First compared record id\",\n      \"name\": \"left_record_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Second compared system\",\n      \"name\": \"right_system\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Second compared spec\",\n      \"name\": \"right_spec\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Second compared record id\",\n      \"name\": \"right_record_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Identifier used for matching, such as sku, email_hash, product_url_hash, or order_number\",\n      \"name\": \"match_key_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Matched identifier value or token\",\n      \"name\": \"match_key_value\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Mismatch type\",\n      \"name\": \"discrepancy_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Business severity\",\n      \"name\": \"severity\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language business impact\",\n      \"name\": \"business_impact\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Role or team that should review the finding\",\n      \"name\": \"recommended_owner\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Suggested next action\",\n      \"name\": \"recommended_action\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Suggested outbound commitment spec for an accepted fix\",\n      \"name\": \"suggested_commitment_spec\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Finding status\",\n      \"name\": \"status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"SKU\",\n      \"name\": \"sku\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Location or warehouse id\",\n      \"name\": \"location_or_warehouse_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"First system available quantity\",\n      \"name\": \"left_available_quantity\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Second system available quantity\",\n      \"name\": \"right_available_quantity\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"First availability state\",\n      \"name\": \"left_availability\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Second availability state\",\n      \"name\": \"right_availability\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Compared values, source file references, and agent evidence for the finding.\",\n      \"name\": \"evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Inventory and availability findings for quantity, stock status, warehouse/location state, marketplace active state, and checkout availability.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Commerce inventory availability reconciliation\",\n    \"spec_name\": \"commerce_inventory_availability_reconciliation\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"commerce_reconciliation_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "commerce_reconciliation"
          ],
          "relatedSystems": [
            "website_storefront",
            "shopify",
            "etsy",
            "tiktok_shop",
            "amazon_selling_partner"
          ]
        },
        {
          "specName": "commerce_order_sync_reconciliation",
          "specConfig": {
            "column_config": [
              {
                "description": "Reconciliation finding id",
                "name": "order_sync_finding_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the finding was produced",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "First compared system",
                "name": "left_system",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "First compared spec",
                "name": "left_spec",
                "tests": [],
                "type": "string"
              },
              {
                "description": "First compared record id",
                "name": "left_record_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Second compared system",
                "name": "right_system",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Second compared spec",
                "name": "right_spec",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Second compared record id",
                "name": "right_record_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Identifier used for matching, such as sku, email_hash, product_url_hash, or order_number",
                "name": "match_key_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Matched identifier value or token",
                "name": "match_key_value",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Mismatch type",
                "name": "discrepancy_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Business severity",
                "name": "severity",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language business impact",
                "name": "business_impact",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Role or team that should review the finding",
                "name": "recommended_owner",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Suggested next action",
                "name": "recommended_action",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Suggested outbound commitment spec for an accepted fix",
                "name": "suggested_commitment_spec",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Finding status",
                "name": "status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Order number",
                "name": "order_number",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Marketplace order id",
                "name": "marketplace_order_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Source order status",
                "name": "source_order_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Target order status",
                "name": "target_order_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Order total amount",
                "name": "order_total_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency code",
                "name": "currency_code",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Compared values, source file references, and agent evidence for the finding.",
                "name": "evidence",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Order sync findings for marketplace, storefront, OMS, POS, fulfillment, and accounting systems.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Commerce order sync reconciliation",
              "spec_name": "commerce_order_sync_reconciliation"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "commerce_reconciliation_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Reconciliation finding id\",\n      \"name\": \"order_sync_finding_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the finding was produced\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"First compared system\",\n      \"name\": \"left_system\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"First compared spec\",\n      \"name\": \"left_spec\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"First compared record id\",\n      \"name\": \"left_record_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Second compared system\",\n      \"name\": \"right_system\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Second compared spec\",\n      \"name\": \"right_spec\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Second compared record id\",\n      \"name\": \"right_record_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Identifier used for matching, such as sku, email_hash, product_url_hash, or order_number\",\n      \"name\": \"match_key_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Matched identifier value or token\",\n      \"name\": \"match_key_value\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Mismatch type\",\n      \"name\": \"discrepancy_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Business severity\",\n      \"name\": \"severity\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language business impact\",\n      \"name\": \"business_impact\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Role or team that should review the finding\",\n      \"name\": \"recommended_owner\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Suggested next action\",\n      \"name\": \"recommended_action\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Suggested outbound commitment spec for an accepted fix\",\n      \"name\": \"suggested_commitment_spec\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Finding status\",\n      \"name\": \"status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Order number\",\n      \"name\": \"order_number\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Marketplace order id\",\n      \"name\": \"marketplace_order_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Source order status\",\n      \"name\": \"source_order_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Target order status\",\n      \"name\": \"target_order_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Order total amount\",\n      \"name\": \"order_total_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency code\",\n      \"name\": \"currency_code\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Compared values, source file references, and agent evidence for the finding.\",\n      \"name\": \"evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Order sync findings for marketplace, storefront, OMS, POS, fulfillment, and accounting systems.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Commerce order sync reconciliation\",\n    \"spec_name\": \"commerce_order_sync_reconciliation\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"commerce_reconciliation_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "commerce_reconciliation"
          ],
          "relatedSystems": [
            "shopify",
            "etsy",
            "tiktok_shop",
            "amazon_selling_partner",
            "hubspot",
            "square"
          ]
        },
        {
          "specName": "commerce_fulfillment_tracking_reconciliation",
          "specConfig": {
            "column_config": [
              {
                "description": "Reconciliation finding id",
                "name": "fulfillment_tracking_finding_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the finding was produced",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "First compared system",
                "name": "left_system",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "First compared spec",
                "name": "left_spec",
                "tests": [],
                "type": "string"
              },
              {
                "description": "First compared record id",
                "name": "left_record_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Second compared system",
                "name": "right_system",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Second compared spec",
                "name": "right_spec",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Second compared record id",
                "name": "right_record_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Identifier used for matching, such as sku, email_hash, product_url_hash, or order_number",
                "name": "match_key_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Matched identifier value or token",
                "name": "match_key_value",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Mismatch type",
                "name": "discrepancy_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Business severity",
                "name": "severity",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language business impact",
                "name": "business_impact",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Role or team that should review the finding",
                "name": "recommended_owner",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Suggested next action",
                "name": "recommended_action",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Suggested outbound commitment spec for an accepted fix",
                "name": "suggested_commitment_spec",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Finding status",
                "name": "status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Order number",
                "name": "order_number",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Fulfillment id",
                "name": "fulfillment_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Carrier code",
                "name": "carrier_code",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed tracking number",
                "name": "tracking_number_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "First delivery status",
                "name": "left_delivery_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Second delivery status",
                "name": "right_delivery_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Compared values, source file references, and agent evidence for the finding.",
                "name": "evidence",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Fulfillment tracking findings for shipment, carrier, tracking, delivery, and marketplace shipment confirmation mismatches.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Commerce fulfillment tracking reconciliation",
              "spec_name": "commerce_fulfillment_tracking_reconciliation"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "commerce_reconciliation_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Reconciliation finding id\",\n      \"name\": \"fulfillment_tracking_finding_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the finding was produced\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"First compared system\",\n      \"name\": \"left_system\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"First compared spec\",\n      \"name\": \"left_spec\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"First compared record id\",\n      \"name\": \"left_record_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Second compared system\",\n      \"name\": \"right_system\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Second compared spec\",\n      \"name\": \"right_spec\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Second compared record id\",\n      \"name\": \"right_record_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Identifier used for matching, such as sku, email_hash, product_url_hash, or order_number\",\n      \"name\": \"match_key_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Matched identifier value or token\",\n      \"name\": \"match_key_value\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Mismatch type\",\n      \"name\": \"discrepancy_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Business severity\",\n      \"name\": \"severity\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language business impact\",\n      \"name\": \"business_impact\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Role or team that should review the finding\",\n      \"name\": \"recommended_owner\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Suggested next action\",\n      \"name\": \"recommended_action\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Suggested outbound commitment spec for an accepted fix\",\n      \"name\": \"suggested_commitment_spec\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Finding status\",\n      \"name\": \"status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Order number\",\n      \"name\": \"order_number\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Fulfillment id\",\n      \"name\": \"fulfillment_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Carrier code\",\n      \"name\": \"carrier_code\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed tracking number\",\n      \"name\": \"tracking_number_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"First delivery status\",\n      \"name\": \"left_delivery_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Second delivery status\",\n      \"name\": \"right_delivery_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Compared values, source file references, and agent evidence for the finding.\",\n      \"name\": \"evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Fulfillment tracking findings for shipment, carrier, tracking, delivery, and marketplace shipment confirmation mismatches.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Commerce fulfillment tracking reconciliation\",\n    \"spec_name\": \"commerce_fulfillment_tracking_reconciliation\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"commerce_reconciliation_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "commerce_reconciliation"
          ],
          "relatedSystems": [
            "shopify",
            "etsy",
            "tiktok_shop",
            "amazon_selling_partner"
          ]
        },
        {
          "specName": "commerce_marketplace_policy_reconciliation",
          "specConfig": {
            "column_config": [
              {
                "description": "Reconciliation finding id",
                "name": "marketplace_policy_finding_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the finding was produced",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "First compared system",
                "name": "left_system",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "First compared spec",
                "name": "left_spec",
                "tests": [],
                "type": "string"
              },
              {
                "description": "First compared record id",
                "name": "left_record_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Second compared system",
                "name": "right_system",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Second compared spec",
                "name": "right_spec",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Second compared record id",
                "name": "right_record_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Identifier used for matching, such as sku, email_hash, product_url_hash, or order_number",
                "name": "match_key_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Matched identifier value or token",
                "name": "match_key_value",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Mismatch type",
                "name": "discrepancy_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Business severity",
                "name": "severity",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language business impact",
                "name": "business_impact",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Role or team that should review the finding",
                "name": "recommended_owner",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Suggested next action",
                "name": "recommended_action",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Suggested outbound commitment spec for an accepted fix",
                "name": "suggested_commitment_spec",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Finding status",
                "name": "status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "SKU",
                "name": "sku",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Marketplace",
                "name": "marketplace",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Policy issue type",
                "name": "policy_issue_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Policy severity",
                "name": "policy_severity",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Source catalog status",
                "name": "source_catalog_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Marketplace listing status",
                "name": "marketplace_listing_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Compared values, source file references, and agent evidence for the finding.",
                "name": "evidence",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Marketplace policy findings for suppressed, disapproved, restricted, or low-quality listings that disagree with source catalog expectations.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Commerce marketplace policy reconciliation",
              "spec_name": "commerce_marketplace_policy_reconciliation"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "commerce_reconciliation_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Reconciliation finding id\",\n      \"name\": \"marketplace_policy_finding_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the finding was produced\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"First compared system\",\n      \"name\": \"left_system\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"First compared spec\",\n      \"name\": \"left_spec\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"First compared record id\",\n      \"name\": \"left_record_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Second compared system\",\n      \"name\": \"right_system\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Second compared spec\",\n      \"name\": \"right_spec\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Second compared record id\",\n      \"name\": \"right_record_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Identifier used for matching, such as sku, email_hash, product_url_hash, or order_number\",\n      \"name\": \"match_key_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Matched identifier value or token\",\n      \"name\": \"match_key_value\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Mismatch type\",\n      \"name\": \"discrepancy_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Business severity\",\n      \"name\": \"severity\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language business impact\",\n      \"name\": \"business_impact\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Role or team that should review the finding\",\n      \"name\": \"recommended_owner\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Suggested next action\",\n      \"name\": \"recommended_action\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Suggested outbound commitment spec for an accepted fix\",\n      \"name\": \"suggested_commitment_spec\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Finding status\",\n      \"name\": \"status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"SKU\",\n      \"name\": \"sku\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Marketplace\",\n      \"name\": \"marketplace\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Policy issue type\",\n      \"name\": \"policy_issue_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Policy severity\",\n      \"name\": \"policy_severity\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Source catalog status\",\n      \"name\": \"source_catalog_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Marketplace listing status\",\n      \"name\": \"marketplace_listing_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Compared values, source file references, and agent evidence for the finding.\",\n      \"name\": \"evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Marketplace policy findings for suppressed, disapproved, restricted, or low-quality listings that disagree with source catalog expectations.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Commerce marketplace policy reconciliation\",\n    \"spec_name\": \"commerce_marketplace_policy_reconciliation\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"commerce_reconciliation_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "commerce_reconciliation"
          ],
          "relatedSystems": [
            "etsy",
            "tiktok_shop",
            "amazon_selling_partner",
            "google_merchant_center"
          ]
        },
        {
          "specName": "commerce_settlement_payout_reconciliation",
          "specConfig": {
            "column_config": [
              {
                "description": "Reconciliation finding id",
                "name": "settlement_payout_finding_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the finding was produced",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "First compared system",
                "name": "left_system",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "First compared spec",
                "name": "left_spec",
                "tests": [],
                "type": "string"
              },
              {
                "description": "First compared record id",
                "name": "left_record_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Second compared system",
                "name": "right_system",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Second compared spec",
                "name": "right_spec",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Second compared record id",
                "name": "right_record_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Identifier used for matching, such as sku, email_hash, product_url_hash, or order_number",
                "name": "match_key_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Matched identifier value or token",
                "name": "match_key_value",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Mismatch type",
                "name": "discrepancy_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Business severity",
                "name": "severity",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language business impact",
                "name": "business_impact",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Role or team that should review the finding",
                "name": "recommended_owner",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Suggested next action",
                "name": "recommended_action",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Suggested outbound commitment spec for an accepted fix",
                "name": "suggested_commitment_spec",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Finding status",
                "name": "status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Settlement id",
                "name": "settlement_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Payout id",
                "name": "payout_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Order number",
                "name": "order_number",
                "tests": [],
                "type": "string"
              },
              {
                "description": "First system amount",
                "name": "left_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Second system amount",
                "name": "right_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency code",
                "name": "currency_code",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Compared values, source file references, and agent evidence for the finding.",
                "name": "evidence",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Settlement and payout findings for marketplace statements, payment processors, accounting deposits, fees, refunds, and net cash.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Commerce settlement payout reconciliation",
              "spec_name": "commerce_settlement_payout_reconciliation"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "commerce_reconciliation_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Reconciliation finding id\",\n      \"name\": \"settlement_payout_finding_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the finding was produced\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"First compared system\",\n      \"name\": \"left_system\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"First compared spec\",\n      \"name\": \"left_spec\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"First compared record id\",\n      \"name\": \"left_record_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Second compared system\",\n      \"name\": \"right_system\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Second compared spec\",\n      \"name\": \"right_spec\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Second compared record id\",\n      \"name\": \"right_record_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Identifier used for matching, such as sku, email_hash, product_url_hash, or order_number\",\n      \"name\": \"match_key_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Matched identifier value or token\",\n      \"name\": \"match_key_value\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Mismatch type\",\n      \"name\": \"discrepancy_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Business severity\",\n      \"name\": \"severity\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language business impact\",\n      \"name\": \"business_impact\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Role or team that should review the finding\",\n      \"name\": \"recommended_owner\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Suggested next action\",\n      \"name\": \"recommended_action\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Suggested outbound commitment spec for an accepted fix\",\n      \"name\": \"suggested_commitment_spec\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Finding status\",\n      \"name\": \"status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Settlement id\",\n      \"name\": \"settlement_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Payout id\",\n      \"name\": \"payout_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Order number\",\n      \"name\": \"order_number\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"First system amount\",\n      \"name\": \"left_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Second system amount\",\n      \"name\": \"right_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency code\",\n      \"name\": \"currency_code\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Compared values, source file references, and agent evidence for the finding.\",\n      \"name\": \"evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Settlement and payout findings for marketplace statements, payment processors, accounting deposits, fees, refunds, and net cash.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Commerce settlement payout reconciliation\",\n    \"spec_name\": \"commerce_settlement_payout_reconciliation\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"commerce_reconciliation_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "commerce_reconciliation"
          ],
          "relatedSystems": [
            "shopify",
            "etsy",
            "tiktok_shop",
            "amazon_selling_partner",
            "stripe",
            "square",
            "hubspot"
          ]
        },
        {
          "specName": "commerce_promotion_campaign_reconciliation",
          "specConfig": {
            "column_config": [
              {
                "description": "Reconciliation finding id",
                "name": "promotion_campaign_finding_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the finding was produced",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "First compared system",
                "name": "left_system",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "First compared spec",
                "name": "left_spec",
                "tests": [],
                "type": "string"
              },
              {
                "description": "First compared record id",
                "name": "left_record_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Second compared system",
                "name": "right_system",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Second compared spec",
                "name": "right_spec",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Second compared record id",
                "name": "right_record_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Identifier used for matching, such as sku, email_hash, product_url_hash, or order_number",
                "name": "match_key_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Matched identifier value or token",
                "name": "match_key_value",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Mismatch type",
                "name": "discrepancy_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Business severity",
                "name": "severity",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language business impact",
                "name": "business_impact",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Role or team that should review the finding",
                "name": "recommended_owner",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Suggested next action",
                "name": "recommended_action",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Suggested outbound commitment spec for an accepted fix",
                "name": "suggested_commitment_spec",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Finding status",
                "name": "status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Promotion id",
                "name": "promotion_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Campaign id",
                "name": "campaign_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "SKU",
                "name": "sku",
                "tests": [],
                "type": "string"
              },
              {
                "description": "First active state",
                "name": "left_active_state",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Second active state",
                "name": "right_active_state",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Compared date window",
                "name": "date_window_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Compared values, source file references, and agent evidence for the finding.",
                "name": "evidence",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Promotion and campaign findings for discounts, coupon codes, campaign product sets, audience eligibility, and active dates across stores and ad platforms.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Commerce promotion campaign reconciliation",
              "spec_name": "commerce_promotion_campaign_reconciliation"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "commerce_reconciliation_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Reconciliation finding id\",\n      \"name\": \"promotion_campaign_finding_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the finding was produced\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"First compared system\",\n      \"name\": \"left_system\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"First compared spec\",\n      \"name\": \"left_spec\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"First compared record id\",\n      \"name\": \"left_record_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Second compared system\",\n      \"name\": \"right_system\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Second compared spec\",\n      \"name\": \"right_spec\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Second compared record id\",\n      \"name\": \"right_record_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Identifier used for matching, such as sku, email_hash, product_url_hash, or order_number\",\n      \"name\": \"match_key_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Matched identifier value or token\",\n      \"name\": \"match_key_value\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Mismatch type\",\n      \"name\": \"discrepancy_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Business severity\",\n      \"name\": \"severity\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language business impact\",\n      \"name\": \"business_impact\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Role or team that should review the finding\",\n      \"name\": \"recommended_owner\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Suggested next action\",\n      \"name\": \"recommended_action\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Suggested outbound commitment spec for an accepted fix\",\n      \"name\": \"suggested_commitment_spec\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Finding status\",\n      \"name\": \"status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Promotion id\",\n      \"name\": \"promotion_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Campaign id\",\n      \"name\": \"campaign_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"SKU\",\n      \"name\": \"sku\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"First active state\",\n      \"name\": \"left_active_state\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Second active state\",\n      \"name\": \"right_active_state\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Compared date window\",\n      \"name\": \"date_window_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Compared values, source file references, and agent evidence for the finding.\",\n      \"name\": \"evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Promotion and campaign findings for discounts, coupon codes, campaign product sets, audience eligibility, and active dates across stores and ad platforms.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Commerce promotion campaign reconciliation\",\n    \"spec_name\": \"commerce_promotion_campaign_reconciliation\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"commerce_reconciliation_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "commerce_reconciliation"
          ],
          "relatedSystems": [
            "shopify",
            "etsy",
            "tiktok_shop",
            "hubspot"
          ]
        }
      ],
      "relatedSystems": [
        "website_storefront",
        "shopify",
        "etsy",
        "tiktok_shop",
        "amazon_selling_partner",
        "google_merchant_center",
        "hubspot",
        "stripe",
        "square"
      ]
    },
    {
      "id": "amazon_selling_partner_commerce_library",
      "type": "collection",
      "domains": [
        "commerce",
        "operations",
        "finance"
      ],
      "systems": [
        "amazon_selling_partner"
      ],
      "version": "1.0.0",
      "summary": "Amazon Selling Partner specs for seller accounts, marketplaces, catalog items, listings, listing issues, restrictions, offers and pricing, fee estimates, FBA and merchant inventory, supply sources, orders, order items, shipments, returns, financial events, settlement reports, report jobs, feed jobs, notifications, A+ content, and governed seller updates.",
      "coverageStatus": "Core",
      "coverageNotes": "Covers common SP-API resources used for Amazon marketplace operations, catalog health, order review, inventory, seller finances, reports, feeds, and approval-first outbound seller changes. It does not mirror every vendor-only API, restricted PII payload, every report type, or every feed schema.",
      "sourceDocs": [
        {
          "label": "Amazon SP-API documentation",
          "url": "https://developer-docs.amazon.com/sp-api/lang-en_US/"
        },
        {
          "label": "Amazon SP-API Catalog Items API",
          "url": "https://developer-docs.amazon.com/sp-api/docs/catalog-items-api-v2022-04-01-reference"
        },
        {
          "label": "Amazon SP-API Orders API",
          "url": "https://developer-docs.amazon.com/sp-api/docs/orders-api-v0-reference"
        }
      ],
      "nextObjects": [
        "vendor_direct_fulfillment",
        "inbound_fba_shipments",
        "brand_analytics_reports",
        "customer_feedback",
        "messaging",
        "seller_wallet",
        "replenishment",
        "data_kiosk_queries"
      ],
      "omittedObjects": [
        "OAuth/token management",
        "raw buyer PII",
        "restricted data-token payloads",
        "every report type",
        "every feed schema",
        "vendor-only workflows not relevant to sellers"
      ],
      "needs": [
        "An Amazon Selling Partner agent/operator role. The generated calls use amazon_selling_partner_agent."
      ],
      "usefulFor": [
        "Amazon seller catalog memory",
        "Listing issue review",
        "Price and Buy Box monitoring",
        "FBA and merchant inventory review",
        "Amazon order follow-up",
        "Settlement and fee reconciliation",
        "Governed listing, price, inventory, fulfillment, and feed updates"
      ],
      "extendWith": [
        "Links from commerce reconciliation findings into listing, price, and inventory commitments",
        "Links from Amazon settlements into QuickBooks or NetSuite cash records",
        "Report freshness expectations for settlement, inventory, and listings reports"
      ],
      "searchTerms": [
        "amazon",
        "amazon seller",
        "selling partner",
        "sp-api",
        "seller central",
        "asin",
        "sku",
        "listings",
        "catalog items",
        "fba inventory",
        "orders",
        "settlements",
        "fees",
        "reports",
        "feeds",
        "a+ content"
      ],
      "links": [
        {
          "from": "amazon_sp_agent_api_listing_updates",
          "to": "amazon_sp_api_listings_items",
          "kind": "source_link",
          "description": "Listing update proposals cite current listing observations."
        },
        {
          "from": "amazon_sp_agent_api_listing_updates",
          "to": "amazon_sp_api_listing_issues",
          "kind": "source_link",
          "description": "Listing update proposals can cite listing issue observations."
        },
        {
          "from": "amazon_sp_agent_api_price_updates",
          "to": "amazon_sp_api_offers_pricing",
          "kind": "source_link",
          "description": "Price update proposals cite current offer and pricing observations."
        },
        {
          "from": "amazon_sp_agent_api_inventory_updates",
          "to": "amazon_sp_api_merchant_inventory",
          "kind": "source_link",
          "description": "Inventory update proposals cite current merchant inventory observations."
        },
        {
          "from": "amazon_sp_agent_api_fulfillment_updates",
          "to": "amazon_sp_api_orders",
          "kind": "source_link",
          "description": "Fulfillment update proposals cite current order observations."
        },
        {
          "from": "amazon_sp_agent_api_feed_submissions",
          "to": "amazon_sp_api_feeds",
          "kind": "source_link",
          "description": "Feed submission packets cite feed job observations when replaying or following up."
        },
        {
          "from": "amazon_sp_agent_api_a_plus_content_updates",
          "to": "amazon_sp_api_a_plus_content",
          "kind": "source_link",
          "description": "A+ content proposals cite current A+ content observations."
        }
      ],
      "installedSpecs": [
        {
          "id": "amazon_sp_api_seller_accounts",
          "domain": "Observation",
          "purpose": "Amazon seller account observations.",
          "systems": [
            "amazon_selling_partner"
          ]
        },
        {
          "id": "amazon_sp_api_marketplaces",
          "domain": "Observation",
          "purpose": "Amazon marketplace observations.",
          "systems": [
            "amazon_selling_partner"
          ]
        },
        {
          "id": "amazon_sp_api_catalog_items",
          "domain": "Observation",
          "purpose": "Amazon catalog item observations.",
          "systems": [
            "amazon_selling_partner"
          ]
        },
        {
          "id": "amazon_sp_api_listings_items",
          "domain": "Observation",
          "purpose": "Amazon listing observations.",
          "systems": [
            "amazon_selling_partner"
          ]
        },
        {
          "id": "amazon_sp_api_listing_issues",
          "domain": "Observation",
          "purpose": "Amazon listing issue observations.",
          "systems": [
            "amazon_selling_partner"
          ]
        },
        {
          "id": "amazon_sp_api_listing_restrictions",
          "domain": "Observation",
          "purpose": "Amazon listing restriction observations.",
          "systems": [
            "amazon_selling_partner"
          ]
        },
        {
          "id": "amazon_sp_api_offers_pricing",
          "domain": "Observation",
          "purpose": "Amazon offer and pricing observations.",
          "systems": [
            "amazon_selling_partner"
          ]
        },
        {
          "id": "amazon_sp_api_product_fees_estimates",
          "domain": "Observation",
          "purpose": "Amazon product fee estimate observations.",
          "systems": [
            "amazon_selling_partner"
          ]
        },
        {
          "id": "amazon_sp_api_fba_inventory",
          "domain": "Observation",
          "purpose": "Amazon FBA inventory observations.",
          "systems": [
            "amazon_selling_partner"
          ]
        },
        {
          "id": "amazon_sp_api_merchant_inventory",
          "domain": "Observation",
          "purpose": "Amazon merchant inventory observations.",
          "systems": [
            "amazon_selling_partner"
          ]
        },
        {
          "id": "amazon_sp_api_supply_sources",
          "domain": "Observation",
          "purpose": "Amazon supply source observations.",
          "systems": [
            "amazon_selling_partner"
          ]
        },
        {
          "id": "amazon_sp_api_orders",
          "domain": "Observation",
          "purpose": "Amazon order observations.",
          "systems": [
            "amazon_selling_partner"
          ]
        },
        {
          "id": "amazon_sp_api_order_items",
          "domain": "Observation",
          "purpose": "Amazon order item observations.",
          "systems": [
            "amazon_selling_partner"
          ]
        },
        {
          "id": "amazon_sp_api_shipments",
          "domain": "Observation",
          "purpose": "Amazon shipment observations.",
          "systems": [
            "amazon_selling_partner"
          ]
        },
        {
          "id": "amazon_sp_api_returns",
          "domain": "Observation",
          "purpose": "Amazon return observations.",
          "systems": [
            "amazon_selling_partner"
          ]
        },
        {
          "id": "amazon_sp_api_financial_events",
          "domain": "Observation",
          "purpose": "Amazon financial event observations.",
          "systems": [
            "amazon_selling_partner"
          ]
        },
        {
          "id": "amazon_sp_api_settlement_reports",
          "domain": "Observation",
          "purpose": "Amazon settlement report observations.",
          "systems": [
            "amazon_selling_partner"
          ]
        },
        {
          "id": "amazon_sp_api_reports",
          "domain": "Observation",
          "purpose": "Amazon report job observations.",
          "systems": [
            "amazon_selling_partner"
          ]
        },
        {
          "id": "amazon_sp_api_feeds",
          "domain": "Observation",
          "purpose": "Amazon feed job observations.",
          "systems": [
            "amazon_selling_partner"
          ]
        },
        {
          "id": "amazon_sp_api_notifications",
          "domain": "Observation",
          "purpose": "Amazon notification observations.",
          "systems": [
            "amazon_selling_partner"
          ]
        },
        {
          "id": "amazon_sp_api_a_plus_content",
          "domain": "Observation",
          "purpose": "Amazon A+ content observations.",
          "systems": [
            "amazon_selling_partner"
          ]
        },
        {
          "id": "amazon_sp_agent_api_listing_updates",
          "domain": "Commitment workflow",
          "purpose": "Governed Amazon listing updates.",
          "systems": [
            "amazon_selling_partner"
          ]
        },
        {
          "id": "amazon_sp_agent_api_price_updates",
          "domain": "Commitment workflow",
          "purpose": "Governed Amazon price updates.",
          "systems": [
            "amazon_selling_partner"
          ]
        },
        {
          "id": "amazon_sp_agent_api_inventory_updates",
          "domain": "Commitment workflow",
          "purpose": "Governed Amazon inventory updates.",
          "systems": [
            "amazon_selling_partner"
          ]
        },
        {
          "id": "amazon_sp_agent_api_fulfillment_updates",
          "domain": "Commitment workflow",
          "purpose": "Governed Amazon fulfillment updates.",
          "systems": [
            "amazon_selling_partner"
          ]
        },
        {
          "id": "amazon_sp_agent_api_feed_submissions",
          "domain": "Commitment workflow",
          "purpose": "Governed Amazon feed submissions.",
          "systems": [
            "amazon_selling_partner"
          ]
        },
        {
          "id": "amazon_sp_agent_api_a_plus_content_updates",
          "domain": "Commitment workflow",
          "purpose": "Governed Amazon A+ content updates.",
          "systems": [
            "amazon_selling_partner"
          ]
        }
      ],
      "createSpecPayloads": [
        {
          "specName": "amazon_sp_api_seller_accounts",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "seller_account_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Seller id",
                "name": "seller_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Seller display name",
                "name": "seller_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Region code",
                "name": "region_code",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Account status",
                "name": "account_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Seller account observations for marketplace participation, region, account status, and operational ownership.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Amazon SP-API seller accounts",
              "spec_name": "amazon_sp_api_seller_accounts"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "amazon_selling_partner_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"seller_account_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Seller id\",\n      \"name\": \"seller_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Seller display name\",\n      \"name\": \"seller_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Region code\",\n      \"name\": \"region_code\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Account status\",\n      \"name\": \"account_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Seller account observations for marketplace participation, region, account status, and operational ownership.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Amazon SP-API seller accounts\",\n    \"spec_name\": \"amazon_sp_api_seller_accounts\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"amazon_selling_partner_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "amazon_selling_partner"
          ]
        },
        {
          "specName": "amazon_sp_api_marketplaces",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "marketplace_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Country code",
                "name": "country_code",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Currency code",
                "name": "currency_code",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Default language code",
                "name": "default_language_code",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Participation status",
                "name": "participation_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Marketplace observations for country, currency, language, and marketplace participation.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Amazon SP-API marketplaces",
              "spec_name": "amazon_sp_api_marketplaces"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "amazon_selling_partner_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"marketplace_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Country code\",\n      \"name\": \"country_code\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Currency code\",\n      \"name\": \"currency_code\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Default language code\",\n      \"name\": \"default_language_code\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Participation status\",\n      \"name\": \"participation_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Marketplace observations for country, currency, language, and marketplace participation.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Amazon SP-API marketplaces\",\n    \"spec_name\": \"amazon_sp_api_marketplaces\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"amazon_selling_partner_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "amazon_selling_partner"
          ]
        },
        {
          "specName": "amazon_sp_api_catalog_items",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "asin",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Marketplace id",
                "name": "marketplace_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Seller SKU",
                "name": "sku",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Catalog title",
                "name": "title",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Brand",
                "name": "brand",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Product type",
                "name": "product_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Browse node id",
                "name": "browse_node_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Amazon catalog item observations for ASIN identity, brand, category, attributes, images, and browse classification.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Amazon SP-API catalog items",
              "spec_name": "amazon_sp_api_catalog_items"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "amazon_selling_partner_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"asin\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Marketplace id\",\n      \"name\": \"marketplace_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Seller SKU\",\n      \"name\": \"sku\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Catalog title\",\n      \"name\": \"title\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Brand\",\n      \"name\": \"brand\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Product type\",\n      \"name\": \"product_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Browse node id\",\n      \"name\": \"browse_node_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Amazon catalog item observations for ASIN identity, brand, category, attributes, images, and browse classification.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Amazon SP-API catalog items\",\n    \"spec_name\": \"amazon_sp_api_catalog_items\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"amazon_selling_partner_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "amazon_selling_partner"
          ]
        },
        {
          "specName": "amazon_sp_api_listings_items",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "listing_item_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Seller id",
                "name": "seller_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Marketplace id",
                "name": "marketplace_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Seller SKU",
                "name": "sku",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "ASIN",
                "name": "asin",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Fulfillment channel",
                "name": "fulfillment_channel",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Listing status",
                "name": "listing_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Listing observations for seller SKU, ASIN, fulfillment channel, status, issue state, and listing attributes.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Amazon SP-API listings items",
              "spec_name": "amazon_sp_api_listings_items"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "amazon_selling_partner_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"listing_item_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Seller id\",\n      \"name\": \"seller_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Marketplace id\",\n      \"name\": \"marketplace_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Seller SKU\",\n      \"name\": \"sku\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"ASIN\",\n      \"name\": \"asin\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Fulfillment channel\",\n      \"name\": \"fulfillment_channel\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Listing status\",\n      \"name\": \"listing_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Listing observations for seller SKU, ASIN, fulfillment channel, status, issue state, and listing attributes.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Amazon SP-API listings items\",\n    \"spec_name\": \"amazon_sp_api_listings_items\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"amazon_selling_partner_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "amazon_selling_partner"
          ]
        },
        {
          "specName": "amazon_sp_api_listing_issues",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "listing_issue_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Seller id",
                "name": "seller_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Marketplace id",
                "name": "marketplace_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Seller SKU",
                "name": "sku",
                "tests": [],
                "type": "string"
              },
              {
                "description": "ASIN",
                "name": "asin",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Issue type",
                "name": "issue_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Issue severity",
                "name": "severity",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Resolution status",
                "name": "resolution_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Listing issue observations for suppressed, restricted, invalid, or policy-affected listings.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Amazon SP-API listing issues",
              "spec_name": "amazon_sp_api_listing_issues"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "amazon_selling_partner_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"listing_issue_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Seller id\",\n      \"name\": \"seller_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Marketplace id\",\n      \"name\": \"marketplace_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Seller SKU\",\n      \"name\": \"sku\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"ASIN\",\n      \"name\": \"asin\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Issue type\",\n      \"name\": \"issue_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Issue severity\",\n      \"name\": \"severity\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Resolution status\",\n      \"name\": \"resolution_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Listing issue observations for suppressed, restricted, invalid, or policy-affected listings.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Amazon SP-API listing issues\",\n    \"spec_name\": \"amazon_sp_api_listing_issues\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"amazon_selling_partner_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "amazon_selling_partner"
          ]
        },
        {
          "specName": "amazon_sp_api_listing_restrictions",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "listing_restriction_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Marketplace id",
                "name": "marketplace_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "ASIN",
                "name": "asin",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Seller SKU",
                "name": "sku",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Condition type",
                "name": "condition_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Restriction reason",
                "name": "restriction_reason",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Listing restriction observations for product, marketplace, condition, approval, and selling eligibility review.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Amazon SP-API listing restrictions",
              "spec_name": "amazon_sp_api_listing_restrictions"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "amazon_selling_partner_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"listing_restriction_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Marketplace id\",\n      \"name\": \"marketplace_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"ASIN\",\n      \"name\": \"asin\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Seller SKU\",\n      \"name\": \"sku\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Condition type\",\n      \"name\": \"condition_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Restriction reason\",\n      \"name\": \"restriction_reason\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Listing restriction observations for product, marketplace, condition, approval, and selling eligibility review.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Amazon SP-API listing restrictions\",\n    \"spec_name\": \"amazon_sp_api_listing_restrictions\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"amazon_selling_partner_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "amazon_selling_partner"
          ]
        },
        {
          "specName": "amazon_sp_api_offers_pricing",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "offer_pricing_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Seller id",
                "name": "seller_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Marketplace id",
                "name": "marketplace_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Seller SKU",
                "name": "sku",
                "tests": [],
                "type": "string"
              },
              {
                "description": "ASIN",
                "name": "asin",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Landed price amount",
                "name": "landed_price_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Listing price amount",
                "name": "listing_price_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency code",
                "name": "currency_code",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Buy Box winner flag",
                "name": "buy_box_winner",
                "tests": [],
                "type": "boolean"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Offer and pricing observations for seller SKU, ASIN, buy-box context, landed price, sale price, and competitive price review.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Amazon SP-API offers pricing",
              "spec_name": "amazon_sp_api_offers_pricing"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "amazon_selling_partner_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"offer_pricing_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Seller id\",\n      \"name\": \"seller_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Marketplace id\",\n      \"name\": \"marketplace_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Seller SKU\",\n      \"name\": \"sku\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"ASIN\",\n      \"name\": \"asin\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Landed price amount\",\n      \"name\": \"landed_price_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Listing price amount\",\n      \"name\": \"listing_price_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency code\",\n      \"name\": \"currency_code\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Buy Box winner flag\",\n      \"name\": \"buy_box_winner\",\n      \"tests\": [],\n      \"type\": \"boolean\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Offer and pricing observations for seller SKU, ASIN, buy-box context, landed price, sale price, and competitive price review.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Amazon SP-API offers pricing\",\n    \"spec_name\": \"amazon_sp_api_offers_pricing\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"amazon_selling_partner_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "amazon_selling_partner"
          ]
        },
        {
          "specName": "amazon_sp_api_product_fees_estimates",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "fee_estimate_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Marketplace id",
                "name": "marketplace_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Seller SKU",
                "name": "sku",
                "tests": [],
                "type": "string"
              },
              {
                "description": "ASIN",
                "name": "asin",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Price amount",
                "name": "price_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Estimated fee amount",
                "name": "estimated_fee_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency code",
                "name": "currency_code",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Product fee estimate observations for referral, fulfillment, variable closing, and total fee review.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Amazon SP-API product fees estimates",
              "spec_name": "amazon_sp_api_product_fees_estimates"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "amazon_selling_partner_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"fee_estimate_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Marketplace id\",\n      \"name\": \"marketplace_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Seller SKU\",\n      \"name\": \"sku\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"ASIN\",\n      \"name\": \"asin\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Price amount\",\n      \"name\": \"price_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Estimated fee amount\",\n      \"name\": \"estimated_fee_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency code\",\n      \"name\": \"currency_code\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Product fee estimate observations for referral, fulfillment, variable closing, and total fee review.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Amazon SP-API product fees estimates\",\n    \"spec_name\": \"amazon_sp_api_product_fees_estimates\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"amazon_selling_partner_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "amazon_selling_partner"
          ]
        },
        {
          "specName": "amazon_sp_api_fba_inventory",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "fba_inventory_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Seller id",
                "name": "seller_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Marketplace id",
                "name": "marketplace_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Seller SKU",
                "name": "sku",
                "tests": [],
                "type": "string"
              },
              {
                "description": "ASIN",
                "name": "asin",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Fulfillable quantity",
                "name": "fulfillable_quantity",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Inbound quantity",
                "name": "inbound_quantity",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Reserved quantity",
                "name": "reserved_quantity",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Stranded quantity",
                "name": "stranded_quantity",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "FBA inventory observations for SKU, ASIN, fulfillment center state, sellable, inbound, reserved, and stranded quantities.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Amazon SP-API FBA inventory",
              "spec_name": "amazon_sp_api_fba_inventory"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "amazon_selling_partner_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"fba_inventory_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Seller id\",\n      \"name\": \"seller_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Marketplace id\",\n      \"name\": \"marketplace_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Seller SKU\",\n      \"name\": \"sku\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"ASIN\",\n      \"name\": \"asin\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Fulfillable quantity\",\n      \"name\": \"fulfillable_quantity\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Inbound quantity\",\n      \"name\": \"inbound_quantity\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Reserved quantity\",\n      \"name\": \"reserved_quantity\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Stranded quantity\",\n      \"name\": \"stranded_quantity\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"FBA inventory observations for SKU, ASIN, fulfillment center state, sellable, inbound, reserved, and stranded quantities.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Amazon SP-API FBA inventory\",\n    \"spec_name\": \"amazon_sp_api_fba_inventory\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"amazon_selling_partner_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "amazon_selling_partner"
          ]
        },
        {
          "specName": "amazon_sp_api_merchant_inventory",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "merchant_inventory_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Seller id",
                "name": "seller_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Marketplace id",
                "name": "marketplace_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Seller SKU",
                "name": "sku",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Supply source id",
                "name": "supply_source_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Available quantity",
                "name": "available_quantity",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Handling time days",
                "name": "handling_time_days",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Merchant-fulfilled inventory observations for supply source, SKU, availability, quantity, and handling time.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Amazon SP-API merchant inventory",
              "spec_name": "amazon_sp_api_merchant_inventory"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "amazon_selling_partner_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"merchant_inventory_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Seller id\",\n      \"name\": \"seller_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Marketplace id\",\n      \"name\": \"marketplace_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Seller SKU\",\n      \"name\": \"sku\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Supply source id\",\n      \"name\": \"supply_source_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Available quantity\",\n      \"name\": \"available_quantity\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Handling time days\",\n      \"name\": \"handling_time_days\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Merchant-fulfilled inventory observations for supply source, SKU, availability, quantity, and handling time.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Amazon SP-API merchant inventory\",\n    \"spec_name\": \"amazon_sp_api_merchant_inventory\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"amazon_selling_partner_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "amazon_selling_partner"
          ]
        },
        {
          "specName": "amazon_sp_api_supply_sources",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "supply_source_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Seller id",
                "name": "seller_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Supply source name",
                "name": "source_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Supply source type",
                "name": "source_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Country code",
                "name": "country_code",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Active flag",
                "name": "active",
                "tests": [],
                "type": "boolean"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Supply source observations for multi-location inventory, ship-from location, region, and fulfillment routing.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Amazon SP-API supply sources",
              "spec_name": "amazon_sp_api_supply_sources"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "amazon_selling_partner_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"supply_source_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Seller id\",\n      \"name\": \"seller_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Supply source name\",\n      \"name\": \"source_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Supply source type\",\n      \"name\": \"source_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Country code\",\n      \"name\": \"country_code\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Active flag\",\n      \"name\": \"active\",\n      \"tests\": [],\n      \"type\": \"boolean\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Supply source observations for multi-location inventory, ship-from location, region, and fulfillment routing.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Amazon SP-API supply sources\",\n    \"spec_name\": \"amazon_sp_api_supply_sources\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"amazon_selling_partner_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "amazon_selling_partner"
          ]
        },
        {
          "specName": "amazon_sp_api_orders",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "amazon_order_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Seller id",
                "name": "seller_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Marketplace id",
                "name": "marketplace_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed buyer reference",
                "name": "buyer_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Order status",
                "name": "order_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Fulfillment channel",
                "name": "fulfillment_channel",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Order total amount",
                "name": "order_total_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency code",
                "name": "currency_code",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Order observations for Amazon order lifecycle, marketplace, buyer-safe token, fulfillment channel, payment, totals, and shipment state.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Amazon SP-API orders",
              "spec_name": "amazon_sp_api_orders"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "amazon_selling_partner_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"amazon_order_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Seller id\",\n      \"name\": \"seller_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Marketplace id\",\n      \"name\": \"marketplace_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed buyer reference\",\n      \"name\": \"buyer_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Order status\",\n      \"name\": \"order_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Fulfillment channel\",\n      \"name\": \"fulfillment_channel\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Order total amount\",\n      \"name\": \"order_total_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency code\",\n      \"name\": \"currency_code\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Order observations for Amazon order lifecycle, marketplace, buyer-safe token, fulfillment channel, payment, totals, and shipment state.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Amazon SP-API orders\",\n    \"spec_name\": \"amazon_sp_api_orders\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"amazon_selling_partner_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "amazon_selling_partner"
          ]
        },
        {
          "specName": "amazon_sp_api_order_items",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "amazon_order_item_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Amazon order id",
                "name": "amazon_order_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "ASIN",
                "name": "asin",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Seller SKU",
                "name": "sku",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Quantity ordered",
                "name": "quantity_ordered",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Item price amount",
                "name": "item_price_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency code",
                "name": "currency_code",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Order item observations for ASIN, SKU, quantity, item price, tax, promotions, and fulfillment review.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Amazon SP-API order items",
              "spec_name": "amazon_sp_api_order_items"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "amazon_selling_partner_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"amazon_order_item_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Amazon order id\",\n      \"name\": \"amazon_order_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"ASIN\",\n      \"name\": \"asin\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Seller SKU\",\n      \"name\": \"sku\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Quantity ordered\",\n      \"name\": \"quantity_ordered\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Item price amount\",\n      \"name\": \"item_price_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency code\",\n      \"name\": \"currency_code\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Order item observations for ASIN, SKU, quantity, item price, tax, promotions, and fulfillment review.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Amazon SP-API order items\",\n    \"spec_name\": \"amazon_sp_api_order_items\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"amazon_selling_partner_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "amazon_selling_partner"
          ]
        },
        {
          "specName": "amazon_sp_api_shipments",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "shipment_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Amazon order id",
                "name": "amazon_order_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Carrier code",
                "name": "carrier_code",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed tracking number",
                "name": "tracking_number_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Shipment status",
                "name": "shipment_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Shipped timestamp",
                "name": "shipped_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Shipment observations for merchant fulfillment, carrier, tracking, package state, and delivery review.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Amazon SP-API shipments",
              "spec_name": "amazon_sp_api_shipments"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "amazon_selling_partner_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"shipment_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Amazon order id\",\n      \"name\": \"amazon_order_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Carrier code\",\n      \"name\": \"carrier_code\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed tracking number\",\n      \"name\": \"tracking_number_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Shipment status\",\n      \"name\": \"shipment_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Shipped timestamp\",\n      \"name\": \"shipped_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Shipment observations for merchant fulfillment, carrier, tracking, package state, and delivery review.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Amazon SP-API shipments\",\n    \"spec_name\": \"amazon_sp_api_shipments\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"amazon_selling_partner_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "amazon_selling_partner"
          ]
        },
        {
          "specName": "amazon_sp_api_returns",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "amazon_return_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Amazon order id",
                "name": "amazon_order_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Seller SKU",
                "name": "sku",
                "tests": [],
                "type": "string"
              },
              {
                "description": "ASIN",
                "name": "asin",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Return reason",
                "name": "return_reason",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Return status",
                "name": "return_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Requested timestamp",
                "name": "requested_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Return observations for return requests, items, reasons, statuses, and reimbursement follow-up.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Amazon SP-API returns",
              "spec_name": "amazon_sp_api_returns"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "amazon_selling_partner_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"amazon_return_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Amazon order id\",\n      \"name\": \"amazon_order_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Seller SKU\",\n      \"name\": \"sku\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"ASIN\",\n      \"name\": \"asin\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Return reason\",\n      \"name\": \"return_reason\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Return status\",\n      \"name\": \"return_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested timestamp\",\n      \"name\": \"requested_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Return observations for return requests, items, reasons, statuses, and reimbursement follow-up.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Amazon SP-API returns\",\n    \"spec_name\": \"amazon_sp_api_returns\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"amazon_selling_partner_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "amazon_selling_partner"
          ]
        },
        {
          "specName": "amazon_sp_api_financial_events",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "financial_event_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Seller id",
                "name": "seller_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Marketplace id",
                "name": "marketplace_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Amazon order id",
                "name": "amazon_order_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Financial event type",
                "name": "event_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Event amount",
                "name": "amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency code",
                "name": "currency_code",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Financial event observations for shipments, refunds, fees, adjustments, service charges, and settlement detail.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Amazon SP-API financial events",
              "spec_name": "amazon_sp_api_financial_events"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "amazon_selling_partner_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"financial_event_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Seller id\",\n      \"name\": \"seller_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Marketplace id\",\n      \"name\": \"marketplace_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Amazon order id\",\n      \"name\": \"amazon_order_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Financial event type\",\n      \"name\": \"event_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Event amount\",\n      \"name\": \"amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency code\",\n      \"name\": \"currency_code\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Financial event observations for shipments, refunds, fees, adjustments, service charges, and settlement detail.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Amazon SP-API financial events\",\n    \"spec_name\": \"amazon_sp_api_financial_events\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"amazon_selling_partner_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "amazon_selling_partner"
          ]
        },
        {
          "specName": "amazon_sp_api_settlement_reports",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "settlement_report_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Seller id",
                "name": "seller_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Settlement id",
                "name": "settlement_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Period start",
                "name": "period_start",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Period end",
                "name": "period_end",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Deposit amount",
                "name": "deposit_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency code",
                "name": "currency_code",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Settlement report observations for payout periods, deposit amount, fees, adjustments, and cash reconciliation.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Amazon SP-API settlement reports",
              "spec_name": "amazon_sp_api_settlement_reports"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "amazon_selling_partner_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"settlement_report_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Seller id\",\n      \"name\": \"seller_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Settlement id\",\n      \"name\": \"settlement_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Period start\",\n      \"name\": \"period_start\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Period end\",\n      \"name\": \"period_end\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Deposit amount\",\n      \"name\": \"deposit_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency code\",\n      \"name\": \"currency_code\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Settlement report observations for payout periods, deposit amount, fees, adjustments, and cash reconciliation.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Amazon SP-API settlement reports\",\n    \"spec_name\": \"amazon_sp_api_settlement_reports\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"amazon_selling_partner_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "amazon_selling_partner"
          ]
        },
        {
          "specName": "amazon_sp_api_reports",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "report_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Seller id",
                "name": "seller_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Report type",
                "name": "report_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Processing status",
                "name": "processing_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Created timestamp",
                "name": "created_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Completed timestamp",
                "name": "completed_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Report job observations for report type, processing status, document availability, and freshness review.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Amazon SP-API reports",
              "spec_name": "amazon_sp_api_reports"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "amazon_selling_partner_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"report_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Seller id\",\n      \"name\": \"seller_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Report type\",\n      \"name\": \"report_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Processing status\",\n      \"name\": \"processing_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Created timestamp\",\n      \"name\": \"created_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Completed timestamp\",\n      \"name\": \"completed_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Report job observations for report type, processing status, document availability, and freshness review.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Amazon SP-API reports\",\n    \"spec_name\": \"amazon_sp_api_reports\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"amazon_selling_partner_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "amazon_selling_partner"
          ]
        },
        {
          "specName": "amazon_sp_api_feeds",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "feed_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Seller id",
                "name": "seller_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Feed type",
                "name": "feed_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Processing status",
                "name": "processing_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Submitted timestamp",
                "name": "submitted_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Completed timestamp",
                "name": "completed_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Result document id",
                "name": "result_document_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Feed job observations for submitted listing, pricing, inventory, order, or fulfillment feeds and processing results.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Amazon SP-API feeds",
              "spec_name": "amazon_sp_api_feeds"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "amazon_selling_partner_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"feed_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Seller id\",\n      \"name\": \"seller_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Feed type\",\n      \"name\": \"feed_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Processing status\",\n      \"name\": \"processing_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Submitted timestamp\",\n      \"name\": \"submitted_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Completed timestamp\",\n      \"name\": \"completed_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Result document id\",\n      \"name\": \"result_document_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Feed job observations for submitted listing, pricing, inventory, order, or fulfillment feeds and processing results.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Amazon SP-API feeds\",\n    \"spec_name\": \"amazon_sp_api_feeds\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"amazon_selling_partner_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "amazon_selling_partner"
          ]
        },
        {
          "specName": "amazon_sp_api_notifications",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "notification_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Seller id",
                "name": "seller_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Notification type",
                "name": "notification_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Resource type",
                "name": "resource_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Resource id",
                "name": "resource_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Occurred timestamp",
                "name": "occurred_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Notification observations for Amazon seller events, changed objects, report completion, and replay handling.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Amazon SP-API notifications",
              "spec_name": "amazon_sp_api_notifications"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "amazon_selling_partner_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"notification_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Seller id\",\n      \"name\": \"seller_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Notification type\",\n      \"name\": \"notification_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Resource type\",\n      \"name\": \"resource_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Resource id\",\n      \"name\": \"resource_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Occurred timestamp\",\n      \"name\": \"occurred_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Notification observations for Amazon seller events, changed objects, report completion, and replay handling.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Amazon SP-API notifications\",\n    \"spec_name\": \"amazon_sp_api_notifications\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"amazon_selling_partner_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "amazon_selling_partner"
          ]
        },
        {
          "specName": "amazon_sp_api_a_plus_content",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "a_plus_content_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Seller id",
                "name": "seller_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Marketplace id",
                "name": "marketplace_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Content reference key",
                "name": "content_reference_key",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Assigned ASIN count",
                "name": "asin_count",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Content status",
                "name": "content_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "A+ content observations for content documents, ASIN assignments, review state, and product-detail-page enrichment.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Amazon SP-API A+ content",
              "spec_name": "amazon_sp_api_a_plus_content"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "amazon_selling_partner_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"a_plus_content_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Seller id\",\n      \"name\": \"seller_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Marketplace id\",\n      \"name\": \"marketplace_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Content reference key\",\n      \"name\": \"content_reference_key\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Assigned ASIN count\",\n      \"name\": \"asin_count\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Content status\",\n      \"name\": \"content_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"A+ content observations for content documents, ASIN assignments, review state, and product-detail-page enrichment.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Amazon SP-API A+ content\",\n    \"spec_name\": \"amazon_sp_api_a_plus_content\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"amazon_selling_partner_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "amazon_selling_partner"
          ]
        },
        {
          "specName": "amazon_sp_agent_api_listing_updates",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "listing_update_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "listing_item_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Seller id",
                "name": "seller_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Marketplace id",
                "name": "marketplace_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Seller SKU",
                "name": "sku",
                "tests": [],
                "type": "string"
              },
              {
                "description": "ASIN",
                "name": "asin",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Field name",
                "name": "field_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed proposed value",
                "name": "proposed_value_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed Amazon listing content or attribute update proposals before outbound SP-API sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Amazon SP agent API listing updates",
              "spec_name": "amazon_sp_agent_api_listing_updates",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "amazon_selling_partner_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"listing_update_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"listing_item_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Seller id\",\n      \"name\": \"seller_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Marketplace id\",\n      \"name\": \"marketplace_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Seller SKU\",\n      \"name\": \"sku\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"ASIN\",\n      \"name\": \"asin\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Field name\",\n      \"name\": \"field_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed proposed value\",\n      \"name\": \"proposed_value_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed Amazon listing content or attribute update proposals before outbound SP-API sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Amazon SP agent API listing updates\",\n    \"spec_name\": \"amazon_sp_agent_api_listing_updates\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"amazon_selling_partner_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "amazon_selling_partner"
          ]
        },
        {
          "specName": "amazon_sp_agent_api_price_updates",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "price_update_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "offer_pricing_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Seller id",
                "name": "seller_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Marketplace id",
                "name": "marketplace_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Seller SKU",
                "name": "sku",
                "tests": [],
                "type": "string"
              },
              {
                "description": "ASIN",
                "name": "asin",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Current price amount",
                "name": "current_price_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Proposed price amount",
                "name": "proposed_price_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency code",
                "name": "currency_code",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed Amazon offer price update proposals before outbound SP-API sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Amazon SP agent API price updates",
              "spec_name": "amazon_sp_agent_api_price_updates",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "amazon_selling_partner_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"price_update_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"offer_pricing_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Seller id\",\n      \"name\": \"seller_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Marketplace id\",\n      \"name\": \"marketplace_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Seller SKU\",\n      \"name\": \"sku\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"ASIN\",\n      \"name\": \"asin\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Current price amount\",\n      \"name\": \"current_price_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Proposed price amount\",\n      \"name\": \"proposed_price_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency code\",\n      \"name\": \"currency_code\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed Amazon offer price update proposals before outbound SP-API sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Amazon SP agent API price updates\",\n    \"spec_name\": \"amazon_sp_agent_api_price_updates\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"amazon_selling_partner_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "amazon_selling_partner"
          ]
        },
        {
          "specName": "amazon_sp_agent_api_inventory_updates",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "inventory_update_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "merchant_inventory_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Seller id",
                "name": "seller_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Marketplace id",
                "name": "marketplace_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Seller SKU",
                "name": "sku",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Supply source id",
                "name": "supply_source_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Current available quantity",
                "name": "current_available_quantity",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Proposed available quantity",
                "name": "proposed_available_quantity",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed Amazon merchant inventory update proposals before outbound SP-API sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Amazon SP agent API inventory updates",
              "spec_name": "amazon_sp_agent_api_inventory_updates",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "amazon_selling_partner_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"inventory_update_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"merchant_inventory_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Seller id\",\n      \"name\": \"seller_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Marketplace id\",\n      \"name\": \"marketplace_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Seller SKU\",\n      \"name\": \"sku\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Supply source id\",\n      \"name\": \"supply_source_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Current available quantity\",\n      \"name\": \"current_available_quantity\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Proposed available quantity\",\n      \"name\": \"proposed_available_quantity\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed Amazon merchant inventory update proposals before outbound SP-API sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Amazon SP agent API inventory updates\",\n    \"spec_name\": \"amazon_sp_agent_api_inventory_updates\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"amazon_selling_partner_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "amazon_selling_partner"
          ]
        },
        {
          "specName": "amazon_sp_agent_api_fulfillment_updates",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "fulfillment_update_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "amazon_order_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Seller id",
                "name": "seller_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Shipment id",
                "name": "shipment_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Carrier code",
                "name": "carrier_code",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed tracking number",
                "name": "tracking_number_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Fulfillment action",
                "name": "fulfillment_action",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed Amazon fulfillment or tracking update proposals before outbound SP-API sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Amazon SP agent API fulfillment updates",
              "spec_name": "amazon_sp_agent_api_fulfillment_updates",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "amazon_selling_partner_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"fulfillment_update_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"amazon_order_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Seller id\",\n      \"name\": \"seller_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Shipment id\",\n      \"name\": \"shipment_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Carrier code\",\n      \"name\": \"carrier_code\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed tracking number\",\n      \"name\": \"tracking_number_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Fulfillment action\",\n      \"name\": \"fulfillment_action\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed Amazon fulfillment or tracking update proposals before outbound SP-API sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Amazon SP agent API fulfillment updates\",\n    \"spec_name\": \"amazon_sp_agent_api_fulfillment_updates\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"amazon_selling_partner_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "amazon_selling_partner"
          ]
        },
        {
          "specName": "amazon_sp_agent_api_feed_submissions",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "feed_submission_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "feed_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Seller id",
                "name": "seller_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Feed type",
                "name": "feed_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Source commitment spec",
                "name": "source_commitment_spec",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Source commitment id",
                "name": "source_commitment_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed Amazon feed submission packets for accepted listing, price, inventory, or fulfillment updates.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Amazon SP agent API feed submissions",
              "spec_name": "amazon_sp_agent_api_feed_submissions",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "amazon_selling_partner_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"feed_submission_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"feed_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Seller id\",\n      \"name\": \"seller_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Feed type\",\n      \"name\": \"feed_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Source commitment spec\",\n      \"name\": \"source_commitment_spec\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Source commitment id\",\n      \"name\": \"source_commitment_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed Amazon feed submission packets for accepted listing, price, inventory, or fulfillment updates.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Amazon SP agent API feed submissions\",\n    \"spec_name\": \"amazon_sp_agent_api_feed_submissions\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"amazon_selling_partner_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "amazon_selling_partner"
          ]
        },
        {
          "specName": "amazon_sp_agent_api_a_plus_content_updates",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "a_plus_content_update_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "a_plus_content_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Seller id",
                "name": "seller_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Marketplace id",
                "name": "marketplace_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Content reference key",
                "name": "content_reference_key",
                "tests": [],
                "type": "string"
              },
              {
                "description": "ASIN",
                "name": "asin",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed proposed content",
                "name": "proposed_content_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed Amazon A+ content update proposals before outbound SP-API sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Amazon SP agent API A+ content updates",
              "spec_name": "amazon_sp_agent_api_a_plus_content_updates",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "amazon_selling_partner_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"a_plus_content_update_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"a_plus_content_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Seller id\",\n      \"name\": \"seller_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Marketplace id\",\n      \"name\": \"marketplace_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Content reference key\",\n      \"name\": \"content_reference_key\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"ASIN\",\n      \"name\": \"asin\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed proposed content\",\n      \"name\": \"proposed_content_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed Amazon A+ content update proposals before outbound SP-API sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Amazon SP agent API A+ content updates\",\n    \"spec_name\": \"amazon_sp_agent_api_a_plus_content_updates\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"amazon_selling_partner_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "amazon_selling_partner"
          ]
        }
      ]
    },
    {
      "id": "amazon_ads_marketing_library",
      "type": "collection",
      "domains": [
        "marketing",
        "commerce"
      ],
      "systems": [
        "amazon_ads",
        "ad_platforms"
      ],
      "version": "1.0.0",
      "summary": "Amazon Ads specs for profiles, portfolios, Sponsored Products, Sponsored Brands, Sponsored Display, ad groups, product ads, keywords, targets, negative targets, creatives, stores, audiences, search terms, performance reporting, product performance, budget recommendations, DSP campaigns and ad groups, Marketing Stream events, and governed ad updates.",
      "coverageStatus": "Core",
      "coverageNotes": "Covers common Amazon Ads resources used for campaign management, sponsored ads optimization, DSP campaign memory, retail-aware reporting, and approval-first outbound ad changes. It does not mirror every Amazon Marketing Cloud dataset, every DSP creative subtype, every advanced report, or every self-serve console bulk operation.",
      "sourceDocs": [
        {
          "label": "Amazon Ads API overview",
          "url": "https://advertising.amazon.com/about-api"
        },
        {
          "label": "Amazon Ads API developers portal",
          "url": "https://advertising.amazon.com/solutions/products/amazon-ads-api"
        },
        {
          "label": "Amazon DSP campaign and creative APIs",
          "url": "https://advertising.amazon.com/en-us/resources/whats-new/amazon-dsp-campaign-and-creative-api-are-now-available/"
        }
      ],
      "nextObjects": [
        "sponsored_tv",
        "amazon_marketing_cloud_queries",
        "brand_metrics",
        "attribution_reports",
        "creative_assets",
        "recommendations",
        "campaign_optimization_rules",
        "bulk_operation_jobs"
      ],
      "omittedObjects": [
        "OAuth/token management",
        "raw shopper identifiers",
        "complete AMC query result datasets",
        "every reporting dimension combination",
        "restricted audience upload payloads"
      ],
      "needs": [
        "An Amazon Ads agent/operator role. The generated calls use amazon_ads_agent."
      ],
      "usefulFor": [
        "Amazon advertising memory",
        "Sponsored ads budget and bid review",
        "Search-term mining",
        "Retail product performance review",
        "DSP campaign reporting",
        "Governed budget, status, bid, keyword, target, and creative updates"
      ],
      "extendWith": [
        "Links from Amazon Selling Partner offers and inventory into product performance review",
        "Links from search terms into negative target proposals",
        "Links from Shopify and website storefront observations into Amazon Store and creative review"
      ],
      "searchTerms": [
        "amazon ads",
        "amazon advertising",
        "sponsored products",
        "sponsored brands",
        "sponsored display",
        "dsp",
        "campaigns",
        "ad groups",
        "product ads",
        "keywords",
        "targets",
        "search terms",
        "acos",
        "roas",
        "marketing stream"
      ],
      "links": [
        {
          "from": "amazon_ads_agent_api_campaign_budget_updates",
          "to": "amazon_ads_api_sponsored_products_campaigns",
          "kind": "source_link",
          "description": "Budget proposals can cite Sponsored Products campaign observations."
        },
        {
          "from": "amazon_ads_agent_api_campaign_budget_updates",
          "to": "amazon_ads_api_budget_recommendations",
          "kind": "source_link",
          "description": "Budget proposals can cite budget recommendation observations."
        },
        {
          "from": "amazon_ads_agent_api_campaign_status_updates",
          "to": "amazon_ads_api_sponsored_brands_campaigns",
          "kind": "source_link",
          "description": "Campaign status proposals can cite Sponsored Brands campaign observations."
        },
        {
          "from": "amazon_ads_agent_api_bid_updates",
          "to": "amazon_ads_api_keywords",
          "kind": "source_link",
          "description": "Bid proposals can cite keyword observations."
        },
        {
          "from": "amazon_ads_agent_api_bid_updates",
          "to": "amazon_ads_api_targets",
          "kind": "source_link",
          "description": "Bid proposals can cite target observations."
        },
        {
          "from": "amazon_ads_agent_api_keyword_target_updates",
          "to": "amazon_ads_api_search_terms",
          "kind": "source_link",
          "description": "Keyword or target proposals can cite search term observations."
        },
        {
          "from": "amazon_ads_agent_api_negative_target_updates",
          "to": "amazon_ads_api_search_terms",
          "kind": "source_link",
          "description": "Negative target proposals can cite search term observations."
        },
        {
          "from": "amazon_ads_agent_api_creative_updates",
          "to": "amazon_ads_api_creatives",
          "kind": "source_link",
          "description": "Creative proposals cite current creative observations."
        }
      ],
      "installedSpecs": [
        {
          "id": "amazon_ads_api_profiles",
          "domain": "Observation",
          "purpose": "Amazon Ads profile observations.",
          "systems": [
            "amazon_ads",
            "ad_platforms"
          ]
        },
        {
          "id": "amazon_ads_api_portfolios",
          "domain": "Observation",
          "purpose": "Amazon Ads portfolio observations.",
          "systems": [
            "amazon_ads",
            "ad_platforms"
          ]
        },
        {
          "id": "amazon_ads_api_sponsored_products_campaigns",
          "domain": "Observation",
          "purpose": "Sponsored Products campaign observations.",
          "systems": [
            "amazon_ads",
            "ad_platforms"
          ]
        },
        {
          "id": "amazon_ads_api_sponsored_brands_campaigns",
          "domain": "Observation",
          "purpose": "Sponsored Brands campaign observations.",
          "systems": [
            "amazon_ads",
            "ad_platforms"
          ]
        },
        {
          "id": "amazon_ads_api_sponsored_display_campaigns",
          "domain": "Observation",
          "purpose": "Sponsored Display campaign observations.",
          "systems": [
            "amazon_ads",
            "ad_platforms"
          ]
        },
        {
          "id": "amazon_ads_api_ad_groups",
          "domain": "Observation",
          "purpose": "Amazon Ads ad group observations.",
          "systems": [
            "amazon_ads",
            "ad_platforms"
          ]
        },
        {
          "id": "amazon_ads_api_product_ads",
          "domain": "Observation",
          "purpose": "Amazon product ad observations.",
          "systems": [
            "amazon_ads",
            "ad_platforms"
          ]
        },
        {
          "id": "amazon_ads_api_keywords",
          "domain": "Observation",
          "purpose": "Amazon Ads keyword observations.",
          "systems": [
            "amazon_ads",
            "ad_platforms"
          ]
        },
        {
          "id": "amazon_ads_api_targets",
          "domain": "Observation",
          "purpose": "Amazon Ads target observations.",
          "systems": [
            "amazon_ads",
            "ad_platforms"
          ]
        },
        {
          "id": "amazon_ads_api_negative_targets",
          "domain": "Observation",
          "purpose": "Amazon Ads negative target observations.",
          "systems": [
            "amazon_ads",
            "ad_platforms"
          ]
        },
        {
          "id": "amazon_ads_api_creatives",
          "domain": "Observation",
          "purpose": "Amazon Ads creative observations.",
          "systems": [
            "amazon_ads",
            "ad_platforms"
          ]
        },
        {
          "id": "amazon_ads_api_stores",
          "domain": "Observation",
          "purpose": "Amazon Store observations.",
          "systems": [
            "amazon_ads",
            "ad_platforms"
          ]
        },
        {
          "id": "amazon_ads_api_audiences",
          "domain": "Observation",
          "purpose": "Amazon Ads audience observations.",
          "systems": [
            "amazon_ads",
            "ad_platforms"
          ]
        },
        {
          "id": "amazon_ads_api_search_terms",
          "domain": "Observation",
          "purpose": "Amazon search term observations.",
          "systems": [
            "amazon_ads",
            "ad_platforms"
          ]
        },
        {
          "id": "amazon_ads_api_performance_metrics",
          "domain": "Observation",
          "purpose": "Amazon Ads performance observations.",
          "systems": [
            "amazon_ads",
            "ad_platforms"
          ]
        },
        {
          "id": "amazon_ads_api_product_performance",
          "domain": "Observation",
          "purpose": "Amazon Ads product performance observations.",
          "systems": [
            "amazon_ads",
            "ad_platforms"
          ]
        },
        {
          "id": "amazon_ads_api_budget_recommendations",
          "domain": "Observation",
          "purpose": "Amazon Ads budget recommendation observations.",
          "systems": [
            "amazon_ads",
            "ad_platforms"
          ]
        },
        {
          "id": "amazon_ads_api_dsp_campaigns",
          "domain": "Observation",
          "purpose": "Amazon DSP campaign observations.",
          "systems": [
            "amazon_ads",
            "ad_platforms"
          ]
        },
        {
          "id": "amazon_ads_api_dsp_ad_groups",
          "domain": "Observation",
          "purpose": "Amazon DSP ad group observations.",
          "systems": [
            "amazon_ads",
            "ad_platforms"
          ]
        },
        {
          "id": "amazon_ads_api_marketing_stream_events",
          "domain": "Observation",
          "purpose": "Amazon Marketing Stream event observations.",
          "systems": [
            "amazon_ads",
            "ad_platforms"
          ]
        },
        {
          "id": "amazon_ads_agent_api_campaign_budget_updates",
          "domain": "Commitment workflow",
          "purpose": "Governed Amazon Ads campaign budget updates.",
          "systems": [
            "amazon_ads",
            "ad_platforms"
          ]
        },
        {
          "id": "amazon_ads_agent_api_campaign_status_updates",
          "domain": "Commitment workflow",
          "purpose": "Governed Amazon Ads campaign status updates.",
          "systems": [
            "amazon_ads",
            "ad_platforms"
          ]
        },
        {
          "id": "amazon_ads_agent_api_bid_updates",
          "domain": "Commitment workflow",
          "purpose": "Governed Amazon Ads bid updates.",
          "systems": [
            "amazon_ads",
            "ad_platforms"
          ]
        },
        {
          "id": "amazon_ads_agent_api_keyword_target_updates",
          "domain": "Commitment workflow",
          "purpose": "Governed Amazon Ads keyword and target updates.",
          "systems": [
            "amazon_ads",
            "ad_platforms"
          ]
        },
        {
          "id": "amazon_ads_agent_api_negative_target_updates",
          "domain": "Commitment workflow",
          "purpose": "Governed Amazon Ads negative target updates.",
          "systems": [
            "amazon_ads",
            "ad_platforms"
          ]
        },
        {
          "id": "amazon_ads_agent_api_creative_updates",
          "domain": "Commitment workflow",
          "purpose": "Governed Amazon Ads creative updates.",
          "systems": [
            "amazon_ads",
            "ad_platforms"
          ]
        }
      ],
      "createSpecPayloads": [
        {
          "specName": "amazon_ads_api_profiles",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "profile_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Advertiser id",
                "name": "advertiser_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Account name",
                "name": "account_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Account type",
                "name": "account_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Marketplace id",
                "name": "marketplace_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Currency code",
                "name": "currency_code",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Amazon Ads profile observations for advertiser identity, account type, marketplace, currency, and access context.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Amazon Ads API profiles",
              "spec_name": "amazon_ads_api_profiles"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "amazon_ads_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"profile_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Advertiser id\",\n      \"name\": \"advertiser_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Account name\",\n      \"name\": \"account_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Account type\",\n      \"name\": \"account_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Marketplace id\",\n      \"name\": \"marketplace_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Currency code\",\n      \"name\": \"currency_code\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Amazon Ads profile observations for advertiser identity, account type, marketplace, currency, and access context.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Amazon Ads API profiles\",\n    \"spec_name\": \"amazon_ads_api_profiles\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"amazon_ads_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "amazon_ads"
          ]
        },
        {
          "specName": "amazon_ads_api_portfolios",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "portfolio_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Profile id",
                "name": "profile_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Portfolio name",
                "name": "portfolio_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Budget amount",
                "name": "budget_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Budget policy",
                "name": "budget_policy",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Portfolio status",
                "name": "portfolio_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Portfolio observations for campaign grouping, budget governance, and account-level organization.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Amazon Ads API portfolios",
              "spec_name": "amazon_ads_api_portfolios"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "amazon_ads_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"portfolio_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Profile id\",\n      \"name\": \"profile_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Portfolio name\",\n      \"name\": \"portfolio_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Budget amount\",\n      \"name\": \"budget_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Budget policy\",\n      \"name\": \"budget_policy\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Portfolio status\",\n      \"name\": \"portfolio_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Portfolio observations for campaign grouping, budget governance, and account-level organization.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Amazon Ads API portfolios\",\n    \"spec_name\": \"amazon_ads_api_portfolios\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"amazon_ads_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "amazon_ads"
          ]
        },
        {
          "specName": "amazon_ads_api_sponsored_products_campaigns",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "sp_campaign_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Profile id",
                "name": "profile_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Campaign name",
                "name": "campaign_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Targeting type",
                "name": "targeting_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Budget amount",
                "name": "budget_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Bidding strategy",
                "name": "bidding_strategy",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Campaign status",
                "name": "campaign_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Sponsored Products campaign observations for targeting type, budget, bidding strategy, status, and marketplace.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Amazon Ads API Sponsored Products campaigns",
              "spec_name": "amazon_ads_api_sponsored_products_campaigns"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "amazon_ads_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"sp_campaign_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Profile id\",\n      \"name\": \"profile_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Campaign name\",\n      \"name\": \"campaign_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Targeting type\",\n      \"name\": \"targeting_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Budget amount\",\n      \"name\": \"budget_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Bidding strategy\",\n      \"name\": \"bidding_strategy\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Campaign status\",\n      \"name\": \"campaign_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Sponsored Products campaign observations for targeting type, budget, bidding strategy, status, and marketplace.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Amazon Ads API Sponsored Products campaigns\",\n    \"spec_name\": \"amazon_ads_api_sponsored_products_campaigns\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"amazon_ads_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "amazon_ads"
          ]
        },
        {
          "specName": "amazon_ads_api_sponsored_brands_campaigns",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "sb_campaign_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Profile id",
                "name": "profile_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Campaign name",
                "name": "campaign_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Budget amount",
                "name": "budget_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Creative status",
                "name": "creative_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Campaign status",
                "name": "campaign_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Sponsored Brands campaign observations for brand ads, budget, creative state, and serving status.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Amazon Ads API Sponsored Brands campaigns",
              "spec_name": "amazon_ads_api_sponsored_brands_campaigns"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "amazon_ads_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"sb_campaign_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Profile id\",\n      \"name\": \"profile_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Campaign name\",\n      \"name\": \"campaign_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Budget amount\",\n      \"name\": \"budget_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Creative status\",\n      \"name\": \"creative_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Campaign status\",\n      \"name\": \"campaign_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Sponsored Brands campaign observations for brand ads, budget, creative state, and serving status.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Amazon Ads API Sponsored Brands campaigns\",\n    \"spec_name\": \"amazon_ads_api_sponsored_brands_campaigns\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"amazon_ads_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "amazon_ads"
          ]
        },
        {
          "specName": "amazon_ads_api_sponsored_display_campaigns",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "sd_campaign_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Profile id",
                "name": "profile_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Campaign name",
                "name": "campaign_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Campaign tactic",
                "name": "tactic",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Budget amount",
                "name": "budget_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Campaign status",
                "name": "campaign_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Sponsored Display campaign observations for retail-aware display advertising, budget, tactic, and status.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Amazon Ads API Sponsored Display campaigns",
              "spec_name": "amazon_ads_api_sponsored_display_campaigns"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "amazon_ads_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"sd_campaign_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Profile id\",\n      \"name\": \"profile_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Campaign name\",\n      \"name\": \"campaign_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Campaign tactic\",\n      \"name\": \"tactic\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Budget amount\",\n      \"name\": \"budget_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Campaign status\",\n      \"name\": \"campaign_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Sponsored Display campaign observations for retail-aware display advertising, budget, tactic, and status.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Amazon Ads API Sponsored Display campaigns\",\n    \"spec_name\": \"amazon_ads_api_sponsored_display_campaigns\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"amazon_ads_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "amazon_ads"
          ]
        },
        {
          "specName": "amazon_ads_api_ad_groups",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "ad_group_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Profile id",
                "name": "profile_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Campaign id",
                "name": "campaign_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Campaign type",
                "name": "campaign_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Ad group name",
                "name": "ad_group_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Default bid amount",
                "name": "default_bid_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Ad group status",
                "name": "ad_group_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Ad group observations for sponsored ads targeting organization, bid defaults, and status.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Amazon Ads API ad groups",
              "spec_name": "amazon_ads_api_ad_groups"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "amazon_ads_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"ad_group_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Profile id\",\n      \"name\": \"profile_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Campaign id\",\n      \"name\": \"campaign_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Campaign type\",\n      \"name\": \"campaign_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Ad group name\",\n      \"name\": \"ad_group_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Default bid amount\",\n      \"name\": \"default_bid_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Ad group status\",\n      \"name\": \"ad_group_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Ad group observations for sponsored ads targeting organization, bid defaults, and status.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Amazon Ads API ad groups\",\n    \"spec_name\": \"amazon_ads_api_ad_groups\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"amazon_ads_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "amazon_ads"
          ]
        },
        {
          "specName": "amazon_ads_api_product_ads",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "product_ad_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Profile id",
                "name": "profile_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Campaign id",
                "name": "campaign_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Ad group id",
                "name": "ad_group_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "ASIN",
                "name": "asin",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Seller SKU",
                "name": "sku",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Ad status",
                "name": "ad_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Product ad observations for advertised ASIN/SKU, campaign/ad group linkage, approval state, and serving status.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Amazon Ads API product ads",
              "spec_name": "amazon_ads_api_product_ads"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "amazon_ads_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"product_ad_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Profile id\",\n      \"name\": \"profile_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Campaign id\",\n      \"name\": \"campaign_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Ad group id\",\n      \"name\": \"ad_group_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"ASIN\",\n      \"name\": \"asin\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Seller SKU\",\n      \"name\": \"sku\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Ad status\",\n      \"name\": \"ad_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Product ad observations for advertised ASIN/SKU, campaign/ad group linkage, approval state, and serving status.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Amazon Ads API product ads\",\n    \"spec_name\": \"amazon_ads_api_product_ads\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"amazon_ads_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "amazon_ads"
          ]
        },
        {
          "specName": "amazon_ads_api_keywords",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "keyword_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Profile id",
                "name": "profile_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Campaign id",
                "name": "campaign_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Ad group id",
                "name": "ad_group_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Keyword text",
                "name": "keyword_text",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Match type",
                "name": "match_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Bid amount",
                "name": "bid_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Keyword status",
                "name": "keyword_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Keyword observations for match type, bid, serving status, and keyword harvesting review.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Amazon Ads API keywords",
              "spec_name": "amazon_ads_api_keywords"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "amazon_ads_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"keyword_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Profile id\",\n      \"name\": \"profile_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Campaign id\",\n      \"name\": \"campaign_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Ad group id\",\n      \"name\": \"ad_group_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Keyword text\",\n      \"name\": \"keyword_text\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Match type\",\n      \"name\": \"match_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Bid amount\",\n      \"name\": \"bid_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Keyword status\",\n      \"name\": \"keyword_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Keyword observations for match type, bid, serving status, and keyword harvesting review.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Amazon Ads API keywords\",\n    \"spec_name\": \"amazon_ads_api_keywords\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"amazon_ads_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "amazon_ads"
          ]
        },
        {
          "specName": "amazon_ads_api_targets",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "target_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Profile id",
                "name": "profile_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Campaign id",
                "name": "campaign_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Ad group id",
                "name": "ad_group_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Target type",
                "name": "target_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Target expression summary",
                "name": "expression_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Bid amount",
                "name": "bid_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Target status",
                "name": "target_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Product or audience target observations for ASIN, category, auto, or other target expressions.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Amazon Ads API targets",
              "spec_name": "amazon_ads_api_targets"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "amazon_ads_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"target_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Profile id\",\n      \"name\": \"profile_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Campaign id\",\n      \"name\": \"campaign_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Ad group id\",\n      \"name\": \"ad_group_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Target type\",\n      \"name\": \"target_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Target expression summary\",\n      \"name\": \"expression_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Bid amount\",\n      \"name\": \"bid_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Target status\",\n      \"name\": \"target_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Product or audience target observations for ASIN, category, auto, or other target expressions.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Amazon Ads API targets\",\n    \"spec_name\": \"amazon_ads_api_targets\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"amazon_ads_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "amazon_ads"
          ]
        },
        {
          "specName": "amazon_ads_api_negative_targets",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "negative_target_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Profile id",
                "name": "profile_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Campaign id",
                "name": "campaign_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Ad group id",
                "name": "ad_group_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Negative type",
                "name": "negative_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Negative expression summary",
                "name": "expression_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Negative status",
                "name": "negative_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Negative keyword or target observations for wasted-spend control and search-term review.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Amazon Ads API negative targets",
              "spec_name": "amazon_ads_api_negative_targets"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "amazon_ads_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"negative_target_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Profile id\",\n      \"name\": \"profile_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Campaign id\",\n      \"name\": \"campaign_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Ad group id\",\n      \"name\": \"ad_group_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Negative type\",\n      \"name\": \"negative_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Negative expression summary\",\n      \"name\": \"expression_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Negative status\",\n      \"name\": \"negative_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Negative keyword or target observations for wasted-spend control and search-term review.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Amazon Ads API negative targets\",\n    \"spec_name\": \"amazon_ads_api_negative_targets\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"amazon_ads_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "amazon_ads"
          ]
        },
        {
          "specName": "amazon_ads_api_creatives",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "creative_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Profile id",
                "name": "profile_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Campaign id",
                "name": "campaign_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Creative name",
                "name": "creative_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Creative type",
                "name": "creative_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Review status",
                "name": "review_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed landing page URL",
                "name": "landing_page_url_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Creative observations for Sponsored Brands, Sponsored Display, DSP, and creative review status.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Amazon Ads API creatives",
              "spec_name": "amazon_ads_api_creatives"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "amazon_ads_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"creative_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Profile id\",\n      \"name\": \"profile_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Campaign id\",\n      \"name\": \"campaign_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Creative name\",\n      \"name\": \"creative_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Creative type\",\n      \"name\": \"creative_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status\",\n      \"name\": \"review_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed landing page URL\",\n      \"name\": \"landing_page_url_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Creative observations for Sponsored Brands, Sponsored Display, DSP, and creative review status.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Amazon Ads API creatives\",\n    \"spec_name\": \"amazon_ads_api_creatives\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"amazon_ads_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "amazon_ads"
          ]
        },
        {
          "specName": "amazon_ads_api_stores",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "store_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Profile id",
                "name": "profile_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Brand entity id",
                "name": "brand_entity_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Store name",
                "name": "store_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Store status",
                "name": "store_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Page count",
                "name": "page_count",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Amazon Store observations for brand storefront pages, page tokens, and campaign landing review.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Amazon Ads API stores",
              "spec_name": "amazon_ads_api_stores"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "amazon_ads_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"store_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Profile id\",\n      \"name\": \"profile_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Brand entity id\",\n      \"name\": \"brand_entity_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Store name\",\n      \"name\": \"store_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Store status\",\n      \"name\": \"store_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Page count\",\n      \"name\": \"page_count\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Amazon Store observations for brand storefront pages, page tokens, and campaign landing review.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Amazon Ads API stores\",\n    \"spec_name\": \"amazon_ads_api_stores\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"amazon_ads_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "amazon_ads"
          ]
        },
        {
          "specName": "amazon_ads_api_audiences",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "audience_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Profile id",
                "name": "profile_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Audience name",
                "name": "audience_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Audience type",
                "name": "audience_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Audience status",
                "name": "audience_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Audience size",
                "name": "audience_size",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Audience observations for Amazon Ads audience assets, status, size, and activation review.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Amazon Ads API audiences",
              "spec_name": "amazon_ads_api_audiences"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "amazon_ads_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"audience_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Profile id\",\n      \"name\": \"profile_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Audience name\",\n      \"name\": \"audience_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Audience type\",\n      \"name\": \"audience_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Audience status\",\n      \"name\": \"audience_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Audience size\",\n      \"name\": \"audience_size\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Audience observations for Amazon Ads audience assets, status, size, and activation review.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Amazon Ads API audiences\",\n    \"spec_name\": \"amazon_ads_api_audiences\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"amazon_ads_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "amazon_ads"
          ]
        },
        {
          "specName": "amazon_ads_api_search_terms",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "search_term_observation_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Profile id",
                "name": "profile_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Campaign id",
                "name": "campaign_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Ad group id",
                "name": "ad_group_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed search term",
                "name": "search_term_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Match type",
                "name": "match_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Spend amount",
                "name": "spend_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Sales amount",
                "name": "sales_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Search term observations for Sponsored Products/Brands query mining, spend, sales, and negative keyword proposals.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Amazon Ads API search terms",
              "spec_name": "amazon_ads_api_search_terms"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "amazon_ads_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"search_term_observation_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Profile id\",\n      \"name\": \"profile_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Campaign id\",\n      \"name\": \"campaign_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Ad group id\",\n      \"name\": \"ad_group_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed search term\",\n      \"name\": \"search_term_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Match type\",\n      \"name\": \"match_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Spend amount\",\n      \"name\": \"spend_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Sales amount\",\n      \"name\": \"sales_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Search term observations for Sponsored Products/Brands query mining, spend, sales, and negative keyword proposals.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Amazon Ads API search terms\",\n    \"spec_name\": \"amazon_ads_api_search_terms\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"amazon_ads_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "amazon_ads"
          ]
        },
        {
          "specName": "amazon_ads_api_performance_metrics",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "amazon_ads_performance_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Profile id",
                "name": "profile_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Resource type",
                "name": "resource_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Resource id",
                "name": "resource_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Metric date",
                "name": "date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Impressions",
                "name": "impressions",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Clicks",
                "name": "clicks",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Spend amount",
                "name": "spend_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Sales amount",
                "name": "sales_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Advertising cost of sales",
                "name": "acos",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Daily Amazon Ads performance observations for campaigns, ad groups, ads, keywords, targets, spend, clicks, sales, and ACOS.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Amazon Ads API performance metrics",
              "spec_name": "amazon_ads_api_performance_metrics"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "amazon_ads_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"amazon_ads_performance_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Profile id\",\n      \"name\": \"profile_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Resource type\",\n      \"name\": \"resource_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Resource id\",\n      \"name\": \"resource_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Metric date\",\n      \"name\": \"date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Impressions\",\n      \"name\": \"impressions\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Clicks\",\n      \"name\": \"clicks\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Spend amount\",\n      \"name\": \"spend_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Sales amount\",\n      \"name\": \"sales_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Advertising cost of sales\",\n      \"name\": \"acos\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Daily Amazon Ads performance observations for campaigns, ad groups, ads, keywords, targets, spend, clicks, sales, and ACOS.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Amazon Ads API performance metrics\",\n    \"spec_name\": \"amazon_ads_api_performance_metrics\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"amazon_ads_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "amazon_ads"
          ]
        },
        {
          "specName": "amazon_ads_api_product_performance",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "amazon_ads_product_performance_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Profile id",
                "name": "profile_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "ASIN",
                "name": "asin",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Seller SKU",
                "name": "sku",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Metric date",
                "name": "date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Spend amount",
                "name": "spend_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Sales amount",
                "name": "sales_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Orders",
                "name": "orders",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Advertised product performance observations for ASIN/SKU sales, spend, ROAS, and product-level campaign review.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Amazon Ads API product performance",
              "spec_name": "amazon_ads_api_product_performance"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "amazon_ads_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"amazon_ads_product_performance_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Profile id\",\n      \"name\": \"profile_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"ASIN\",\n      \"name\": \"asin\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Seller SKU\",\n      \"name\": \"sku\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Metric date\",\n      \"name\": \"date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Spend amount\",\n      \"name\": \"spend_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Sales amount\",\n      \"name\": \"sales_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Orders\",\n      \"name\": \"orders\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Advertised product performance observations for ASIN/SKU sales, spend, ROAS, and product-level campaign review.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Amazon Ads API product performance\",\n    \"spec_name\": \"amazon_ads_api_product_performance\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"amazon_ads_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "amazon_ads"
          ]
        },
        {
          "specName": "amazon_ads_api_budget_recommendations",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "budget_recommendation_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Profile id",
                "name": "profile_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Campaign id",
                "name": "campaign_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Campaign type",
                "name": "campaign_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Current budget amount",
                "name": "current_budget_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Recommended budget amount",
                "name": "recommended_budget_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Budget recommendation observations for campaigns with budget constraints and recommended budget changes.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Amazon Ads API budget recommendations",
              "spec_name": "amazon_ads_api_budget_recommendations"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "amazon_ads_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"budget_recommendation_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Profile id\",\n      \"name\": \"profile_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Campaign id\",\n      \"name\": \"campaign_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Campaign type\",\n      \"name\": \"campaign_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Current budget amount\",\n      \"name\": \"current_budget_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Recommended budget amount\",\n      \"name\": \"recommended_budget_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Budget recommendation observations for campaigns with budget constraints and recommended budget changes.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Amazon Ads API budget recommendations\",\n    \"spec_name\": \"amazon_ads_api_budget_recommendations\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"amazon_ads_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "amazon_ads"
          ]
        },
        {
          "specName": "amazon_ads_api_dsp_campaigns",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "dsp_campaign_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Profile id",
                "name": "profile_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Advertiser id",
                "name": "advertiser_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Campaign name",
                "name": "campaign_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Budget amount",
                "name": "budget_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Start date",
                "name": "start_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "End date",
                "name": "end_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Campaign status",
                "name": "campaign_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Amazon DSP campaign observations for campaign state, budget, dates, advertiser, and programmatic media review.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Amazon Ads API DSP campaigns",
              "spec_name": "amazon_ads_api_dsp_campaigns"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "amazon_ads_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"dsp_campaign_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Profile id\",\n      \"name\": \"profile_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Advertiser id\",\n      \"name\": \"advertiser_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Campaign name\",\n      \"name\": \"campaign_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Budget amount\",\n      \"name\": \"budget_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Start date\",\n      \"name\": \"start_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"End date\",\n      \"name\": \"end_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Campaign status\",\n      \"name\": \"campaign_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Amazon DSP campaign observations for campaign state, budget, dates, advertiser, and programmatic media review.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Amazon Ads API DSP campaigns\",\n    \"spec_name\": \"amazon_ads_api_dsp_campaigns\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"amazon_ads_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "amazon_ads"
          ]
        },
        {
          "specName": "amazon_ads_api_dsp_ad_groups",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "dsp_ad_group_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Profile id",
                "name": "profile_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "DSP campaign id",
                "name": "dsp_campaign_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Ad group name",
                "name": "ad_group_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Goal type",
                "name": "goal_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Bid amount",
                "name": "bid_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Ad group status",
                "name": "ad_group_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Amazon DSP ad group observations for pacing, bids, goals, and activation state.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Amazon Ads API DSP ad groups",
              "spec_name": "amazon_ads_api_dsp_ad_groups"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "amazon_ads_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"dsp_ad_group_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Profile id\",\n      \"name\": \"profile_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"DSP campaign id\",\n      \"name\": \"dsp_campaign_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Ad group name\",\n      \"name\": \"ad_group_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Goal type\",\n      \"name\": \"goal_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Bid amount\",\n      \"name\": \"bid_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Ad group status\",\n      \"name\": \"ad_group_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Amazon DSP ad group observations for pacing, bids, goals, and activation state.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Amazon Ads API DSP ad groups\",\n    \"spec_name\": \"amazon_ads_api_dsp_ad_groups\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"amazon_ads_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "amazon_ads"
          ]
        },
        {
          "specName": "amazon_ads_api_marketing_stream_events",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "marketing_stream_event_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Profile id",
                "name": "profile_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Event type",
                "name": "event_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Resource type",
                "name": "resource_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Resource id",
                "name": "resource_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Occurred timestamp",
                "name": "occurred_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Amazon Marketing Stream event observations for near-real-time campaign budget, performance, and status changes.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Amazon Ads API marketing stream events",
              "spec_name": "amazon_ads_api_marketing_stream_events"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "amazon_ads_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"marketing_stream_event_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Profile id\",\n      \"name\": \"profile_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Event type\",\n      \"name\": \"event_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Resource type\",\n      \"name\": \"resource_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Resource id\",\n      \"name\": \"resource_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Occurred timestamp\",\n      \"name\": \"occurred_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Amazon Marketing Stream event observations for near-real-time campaign budget, performance, and status changes.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Amazon Ads API marketing stream events\",\n    \"spec_name\": \"amazon_ads_api_marketing_stream_events\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"amazon_ads_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "amazon_ads"
          ]
        },
        {
          "specName": "amazon_ads_agent_api_campaign_budget_updates",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "campaign_budget_update_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "campaign_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Profile id",
                "name": "profile_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Campaign type",
                "name": "campaign_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Current budget amount",
                "name": "current_budget_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Proposed budget amount",
                "name": "proposed_budget_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency code",
                "name": "currency_code",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed Amazon Ads campaign budget update proposals before outbound Amazon Ads sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Amazon Ads agent API campaign budget updates",
              "spec_name": "amazon_ads_agent_api_campaign_budget_updates",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "amazon_ads_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"campaign_budget_update_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"campaign_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Profile id\",\n      \"name\": \"profile_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Campaign type\",\n      \"name\": \"campaign_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Current budget amount\",\n      \"name\": \"current_budget_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Proposed budget amount\",\n      \"name\": \"proposed_budget_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency code\",\n      \"name\": \"currency_code\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed Amazon Ads campaign budget update proposals before outbound Amazon Ads sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Amazon Ads agent API campaign budget updates\",\n    \"spec_name\": \"amazon_ads_agent_api_campaign_budget_updates\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"amazon_ads_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "amazon_ads"
          ]
        },
        {
          "specName": "amazon_ads_agent_api_campaign_status_updates",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "campaign_status_update_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "campaign_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Profile id",
                "name": "profile_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Campaign type",
                "name": "campaign_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Current status",
                "name": "current_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Proposed status",
                "name": "proposed_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed Amazon Ads campaign status update proposals before outbound Amazon Ads sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Amazon Ads agent API campaign status updates",
              "spec_name": "amazon_ads_agent_api_campaign_status_updates",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "amazon_ads_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"campaign_status_update_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"campaign_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Profile id\",\n      \"name\": \"profile_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Campaign type\",\n      \"name\": \"campaign_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Current status\",\n      \"name\": \"current_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Proposed status\",\n      \"name\": \"proposed_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed Amazon Ads campaign status update proposals before outbound Amazon Ads sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Amazon Ads agent API campaign status updates\",\n    \"spec_name\": \"amazon_ads_agent_api_campaign_status_updates\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"amazon_ads_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "amazon_ads"
          ]
        },
        {
          "specName": "amazon_ads_agent_api_bid_updates",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "bid_update_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "bid_target_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Profile id",
                "name": "profile_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Campaign id",
                "name": "campaign_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Ad group id",
                "name": "ad_group_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Keyword, target, or ad group",
                "name": "bid_target_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Current bid amount",
                "name": "current_bid_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Proposed bid amount",
                "name": "proposed_bid_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed Amazon Ads keyword, target, or ad group bid update proposals before outbound Amazon Ads sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Amazon Ads agent API bid updates",
              "spec_name": "amazon_ads_agent_api_bid_updates",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "amazon_ads_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"bid_update_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"bid_target_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Profile id\",\n      \"name\": \"profile_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Campaign id\",\n      \"name\": \"campaign_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Ad group id\",\n      \"name\": \"ad_group_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Keyword, target, or ad group\",\n      \"name\": \"bid_target_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Current bid amount\",\n      \"name\": \"current_bid_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Proposed bid amount\",\n      \"name\": \"proposed_bid_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed Amazon Ads keyword, target, or ad group bid update proposals before outbound Amazon Ads sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Amazon Ads agent API bid updates\",\n    \"spec_name\": \"amazon_ads_agent_api_bid_updates\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"amazon_ads_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "amazon_ads"
          ]
        },
        {
          "specName": "amazon_ads_agent_api_keyword_target_updates",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "keyword_target_update_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "keyword_or_target_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Profile id",
                "name": "profile_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Campaign id",
                "name": "campaign_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Ad group id",
                "name": "ad_group_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Keyword or target type",
                "name": "target_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Keyword or target expression summary",
                "name": "expression_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Proposed status",
                "name": "proposed_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed Amazon Ads keyword or target create/update proposals before outbound Amazon Ads sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Amazon Ads agent API keyword target updates",
              "spec_name": "amazon_ads_agent_api_keyword_target_updates",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "amazon_ads_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"keyword_target_update_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"keyword_or_target_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Profile id\",\n      \"name\": \"profile_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Campaign id\",\n      \"name\": \"campaign_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Ad group id\",\n      \"name\": \"ad_group_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Keyword or target type\",\n      \"name\": \"target_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Keyword or target expression summary\",\n      \"name\": \"expression_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Proposed status\",\n      \"name\": \"proposed_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed Amazon Ads keyword or target create/update proposals before outbound Amazon Ads sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Amazon Ads agent API keyword target updates\",\n    \"spec_name\": \"amazon_ads_agent_api_keyword_target_updates\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"amazon_ads_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "amazon_ads"
          ]
        },
        {
          "specName": "amazon_ads_agent_api_negative_target_updates",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "negative_target_update_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "negative_target_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Profile id",
                "name": "profile_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Campaign id",
                "name": "campaign_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Ad group id",
                "name": "ad_group_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Negative type",
                "name": "negative_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Negative expression summary",
                "name": "expression_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed Amazon Ads negative keyword or target proposals before outbound Amazon Ads sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Amazon Ads agent API negative target updates",
              "spec_name": "amazon_ads_agent_api_negative_target_updates",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "amazon_ads_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"negative_target_update_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"negative_target_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Profile id\",\n      \"name\": \"profile_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Campaign id\",\n      \"name\": \"campaign_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Ad group id\",\n      \"name\": \"ad_group_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Negative type\",\n      \"name\": \"negative_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Negative expression summary\",\n      \"name\": \"expression_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed Amazon Ads negative keyword or target proposals before outbound Amazon Ads sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Amazon Ads agent API negative target updates\",\n    \"spec_name\": \"amazon_ads_agent_api_negative_target_updates\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"amazon_ads_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "amazon_ads"
          ]
        },
        {
          "specName": "amazon_ads_agent_api_creative_updates",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "creative_update_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "creative_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Profile id",
                "name": "profile_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Campaign id",
                "name": "campaign_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Creative type",
                "name": "creative_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Field name",
                "name": "field_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed proposed value",
                "name": "proposed_value_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed Amazon Ads creative update proposals before outbound Amazon Ads sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Amazon Ads agent API creative updates",
              "spec_name": "amazon_ads_agent_api_creative_updates",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "amazon_ads_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"creative_update_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"creative_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Profile id\",\n      \"name\": \"profile_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Campaign id\",\n      \"name\": \"campaign_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Creative type\",\n      \"name\": \"creative_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Field name\",\n      \"name\": \"field_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed proposed value\",\n      \"name\": \"proposed_value_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed Amazon Ads creative update proposals before outbound Amazon Ads sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Amazon Ads agent API creative updates\",\n    \"spec_name\": \"amazon_ads_agent_api_creative_updates\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"amazon_ads_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "amazon_ads"
          ]
        }
      ]
    },
    {
      "id": "hubspot_marketing_library",
      "type": "collection",
      "domains": [
        "marketing",
        "crm"
      ],
      "systems": [
        "hubspot"
      ],
      "version": "1.0.0",
      "summary": "HubSpot Marketing Hub specs for campaigns, campaign assets, campaign performance, marketing emails, email events, email performance, landing pages, CTAs, tracking URLs, workflows, workflow enrollments, social posts, ad campaigns, webhook events, and governed marketing updates.",
      "coverageStatus": "Core",
      "coverageNotes": "Covers common Marketing Hub assets and automation records agents use for campaign review, attribution, email performance, form and page follow-up, and approval-first outbound marketing changes. It does not mirror CMS themes, every report export, raw recipient PII, or every account-specific marketing property.",
      "sourceDocs": [
        {
          "label": "HubSpot Campaigns API",
          "url": "https://developers.hubspot.com/docs/api-reference/latest/marketing/campaigns/guide"
        },
        {
          "label": "HubSpot Marketing Email API",
          "url": "https://developers.hubspot.com/docs/api/marketing/marketing-emails"
        },
        {
          "label": "HubSpot Workflows API",
          "url": "https://developers.hubspot.com/docs/guides/api/automation/workflows-v4"
        }
      ],
      "nextObjects": [
        "blog_posts",
        "cms_pages",
        "content_memberships",
        "forms_v3_deep_fields",
        "lead_scoring_rules",
        "campaign_budget_plans",
        "ads_audience_syncs",
        "marketing_reports"
      ],
      "omittedObjects": [
        "OAuth/token management",
        "raw email recipient details",
        "full CMS theme/template source",
        "every report dimension export",
        "account-specific private properties"
      ],
      "needs": [
        "A HubSpot agent/operator role. The generated calls use hubspot_agent."
      ],
      "usefulFor": [
        "Campaign memory",
        "Email performance review",
        "Workflow automation audit",
        "Landing page and CTA follow-up",
        "Cross-channel attribution review",
        "Governed campaign, email, workflow, list, and asset updates"
      ],
      "extendWith": [
        "Links from Google Ads/TikTok Ads/Amazon Ads campaigns into HubSpot campaign performance",
        "Links from GA4 acquisition reports into campaign review",
        "Links from HubSpot workflow observations into ops_issues for automation drift"
      ],
      "searchTerms": [
        "hubspot marketing",
        "marketing hub",
        "campaigns",
        "marketing emails",
        "email events",
        "workflows",
        "automation",
        "landing pages",
        "ctas",
        "tracking urls",
        "social posts",
        "ad campaigns"
      ],
      "links": [
        {
          "from": "hubspot_marketing_agent_api_campaign_updates",
          "to": "hubspot_marketing_api_campaigns",
          "kind": "source_link",
          "description": "Campaign update proposals cite current campaign observations."
        },
        {
          "from": "hubspot_marketing_agent_api_email_updates",
          "to": "hubspot_marketing_api_emails",
          "kind": "source_link",
          "description": "Email update proposals cite current marketing email observations."
        },
        {
          "from": "hubspot_marketing_agent_api_workflow_updates",
          "to": "hubspot_marketing_api_workflows",
          "kind": "source_link",
          "description": "Workflow update proposals cite current workflow observations."
        },
        {
          "from": "hubspot_marketing_agent_api_list_updates",
          "to": "hubspot_api_lists",
          "kind": "source_link",
          "description": "List update proposals cite current list observations from the CRM shelf."
        },
        {
          "from": "hubspot_marketing_agent_api_asset_association_updates",
          "to": "hubspot_marketing_api_campaign_assets",
          "kind": "source_link",
          "description": "Campaign asset association proposals cite current campaign asset observations."
        }
      ],
      "installedSpecs": [
        {
          "id": "hubspot_marketing_api_campaigns",
          "domain": "Observation",
          "purpose": "Marketing campaign observations.",
          "systems": [
            "hubspot"
          ]
        },
        {
          "id": "hubspot_marketing_api_campaign_assets",
          "domain": "Observation",
          "purpose": "Campaign asset observations.",
          "systems": [
            "hubspot"
          ]
        },
        {
          "id": "hubspot_marketing_api_campaign_performance",
          "domain": "Observation",
          "purpose": "Campaign performance observations.",
          "systems": [
            "hubspot"
          ]
        },
        {
          "id": "hubspot_marketing_api_emails",
          "domain": "Observation",
          "purpose": "Marketing email observations.",
          "systems": [
            "hubspot"
          ]
        },
        {
          "id": "hubspot_marketing_api_email_events",
          "domain": "Observation",
          "purpose": "Marketing email event observations.",
          "systems": [
            "hubspot"
          ]
        },
        {
          "id": "hubspot_marketing_api_email_performance",
          "domain": "Observation",
          "purpose": "Marketing email performance observations.",
          "systems": [
            "hubspot"
          ]
        },
        {
          "id": "hubspot_marketing_api_landing_pages",
          "domain": "Observation",
          "purpose": "Landing page observations.",
          "systems": [
            "hubspot"
          ]
        },
        {
          "id": "hubspot_marketing_api_ctas",
          "domain": "Observation",
          "purpose": "CTA observations.",
          "systems": [
            "hubspot"
          ]
        },
        {
          "id": "hubspot_marketing_api_tracking_urls",
          "domain": "Observation",
          "purpose": "Tracking URL observations.",
          "systems": [
            "hubspot"
          ]
        },
        {
          "id": "hubspot_marketing_api_workflows",
          "domain": "Observation",
          "purpose": "Workflow automation observations.",
          "systems": [
            "hubspot"
          ]
        },
        {
          "id": "hubspot_marketing_api_workflow_enrollments",
          "domain": "Observation",
          "purpose": "Workflow enrollment observations.",
          "systems": [
            "hubspot"
          ]
        },
        {
          "id": "hubspot_marketing_api_social_posts",
          "domain": "Observation",
          "purpose": "Social post observations.",
          "systems": [
            "hubspot"
          ]
        },
        {
          "id": "hubspot_marketing_api_ad_campaigns",
          "domain": "Observation",
          "purpose": "HubSpot ad campaign observations.",
          "systems": [
            "hubspot"
          ]
        },
        {
          "id": "hubspot_marketing_api_webhook_events",
          "domain": "Observation",
          "purpose": "Marketing webhook event observations.",
          "systems": [
            "hubspot"
          ]
        },
        {
          "id": "hubspot_marketing_agent_api_campaign_updates",
          "domain": "Commitment workflow",
          "purpose": "Governed campaign updates.",
          "systems": [
            "hubspot"
          ]
        },
        {
          "id": "hubspot_marketing_agent_api_email_updates",
          "domain": "Commitment workflow",
          "purpose": "Governed marketing email updates.",
          "systems": [
            "hubspot"
          ]
        },
        {
          "id": "hubspot_marketing_agent_api_workflow_updates",
          "domain": "Commitment workflow",
          "purpose": "Governed workflow updates.",
          "systems": [
            "hubspot"
          ]
        },
        {
          "id": "hubspot_marketing_agent_api_list_updates",
          "domain": "Commitment workflow",
          "purpose": "Governed list updates.",
          "systems": [
            "hubspot"
          ]
        },
        {
          "id": "hubspot_marketing_agent_api_asset_association_updates",
          "domain": "Commitment workflow",
          "purpose": "Governed campaign asset association updates.",
          "systems": [
            "hubspot"
          ]
        }
      ],
      "createSpecPayloads": [
        {
          "specName": "hubspot_marketing_api_campaigns",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "campaign_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Campaign name",
                "name": "campaign_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Campaign status",
                "name": "campaign_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "HubSpot owner id",
                "name": "owner_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Start date",
                "name": "start_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "End date",
                "name": "end_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Asset count",
                "name": "asset_count",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Campaign observations for marketing campaign identity, assets, owners, dates, status, and performance review.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "HubSpot Marketing API campaigns",
              "spec_name": "hubspot_marketing_api_campaigns"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "hubspot_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"campaign_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Campaign name\",\n      \"name\": \"campaign_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Campaign status\",\n      \"name\": \"campaign_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"HubSpot owner id\",\n      \"name\": \"owner_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Start date\",\n      \"name\": \"start_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"End date\",\n      \"name\": \"end_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Asset count\",\n      \"name\": \"asset_count\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Campaign observations for marketing campaign identity, assets, owners, dates, status, and performance review.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"HubSpot Marketing API campaigns\",\n    \"spec_name\": \"hubspot_marketing_api_campaigns\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"hubspot_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "hubspot"
          ]
        },
        {
          "specName": "hubspot_marketing_api_campaign_assets",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "campaign_asset_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Campaign id",
                "name": "campaign_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Asset type",
                "name": "asset_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Asset id",
                "name": "asset_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Asset name",
                "name": "asset_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Asset status",
                "name": "asset_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Campaign asset observations linking campaigns to emails, forms, landing pages, CTAs, lists, ads, social posts, and other assets.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "HubSpot Marketing API campaign assets",
              "spec_name": "hubspot_marketing_api_campaign_assets"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "hubspot_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"campaign_asset_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Campaign id\",\n      \"name\": \"campaign_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Asset type\",\n      \"name\": \"asset_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Asset id\",\n      \"name\": \"asset_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Asset name\",\n      \"name\": \"asset_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Asset status\",\n      \"name\": \"asset_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Campaign asset observations linking campaigns to emails, forms, landing pages, CTAs, lists, ads, social posts, and other assets.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"HubSpot Marketing API campaign assets\",\n    \"spec_name\": \"hubspot_marketing_api_campaign_assets\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"hubspot_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "hubspot"
          ]
        },
        {
          "specName": "hubspot_marketing_api_campaign_performance",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "campaign_performance_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Campaign id",
                "name": "campaign_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Report date",
                "name": "date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Metric scope",
                "name": "metric_scope",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Views",
                "name": "views",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Submissions",
                "name": "submissions",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Opens",
                "name": "opens",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Clicks",
                "name": "clicks",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Influenced revenue",
                "name": "influenced_revenue",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Campaign performance observations for views, submissions, opens, clicks, contacts, influenced revenue, and date windows.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "HubSpot Marketing API campaign performance",
              "spec_name": "hubspot_marketing_api_campaign_performance"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "hubspot_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"campaign_performance_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Campaign id\",\n      \"name\": \"campaign_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Report date\",\n      \"name\": \"date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Metric scope\",\n      \"name\": \"metric_scope\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Views\",\n      \"name\": \"views\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Submissions\",\n      \"name\": \"submissions\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Opens\",\n      \"name\": \"opens\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Clicks\",\n      \"name\": \"clicks\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Influenced revenue\",\n      \"name\": \"influenced_revenue\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Campaign performance observations for views, submissions, opens, clicks, contacts, influenced revenue, and date windows.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"HubSpot Marketing API campaign performance\",\n    \"spec_name\": \"hubspot_marketing_api_campaign_performance\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"hubspot_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "hubspot"
          ]
        },
        {
          "specName": "hubspot_marketing_api_emails",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "marketing_email_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Campaign id",
                "name": "campaign_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Email name",
                "name": "email_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed subject",
                "name": "subject_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Email state",
                "name": "email_state",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Email type",
                "name": "email_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Created timestamp",
                "name": "created_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Marketing email observations for email assets, subject, sender, publish state, campaign linkage, and send settings.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "HubSpot Marketing API emails",
              "spec_name": "hubspot_marketing_api_emails"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "hubspot_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"marketing_email_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Campaign id\",\n      \"name\": \"campaign_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Email name\",\n      \"name\": \"email_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed subject\",\n      \"name\": \"subject_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Email state\",\n      \"name\": \"email_state\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Email type\",\n      \"name\": \"email_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Created timestamp\",\n      \"name\": \"created_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Marketing email observations for email assets, subject, sender, publish state, campaign linkage, and send settings.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"HubSpot Marketing API emails\",\n    \"spec_name\": \"hubspot_marketing_api_emails\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"hubspot_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "hubspot"
          ]
        },
        {
          "specName": "hubspot_marketing_api_email_events",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "email_event_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Marketing email id",
                "name": "marketing_email_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Contact id",
                "name": "contact_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed recipient reference",
                "name": "recipient_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Event type",
                "name": "event_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Event timestamp",
                "name": "event_timestamp",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Campaign id",
                "name": "campaign_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Marketing email event observations for sends, deliveries, opens, clicks, bounces, unsubscribes, and spam reports.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "HubSpot Marketing API email events",
              "spec_name": "hubspot_marketing_api_email_events"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "hubspot_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"email_event_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Marketing email id\",\n      \"name\": \"marketing_email_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Contact id\",\n      \"name\": \"contact_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed recipient reference\",\n      \"name\": \"recipient_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Event type\",\n      \"name\": \"event_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Event timestamp\",\n      \"name\": \"event_timestamp\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Campaign id\",\n      \"name\": \"campaign_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Marketing email event observations for sends, deliveries, opens, clicks, bounces, unsubscribes, and spam reports.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"HubSpot Marketing API email events\",\n    \"spec_name\": \"hubspot_marketing_api_email_events\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"hubspot_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "hubspot"
          ]
        },
        {
          "specName": "hubspot_marketing_api_email_performance",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "email_performance_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Marketing email id",
                "name": "marketing_email_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Campaign id",
                "name": "campaign_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Report date",
                "name": "date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Sent count",
                "name": "sent_count",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Open count",
                "name": "open_count",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Click count",
                "name": "click_count",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Bounce count",
                "name": "bounce_count",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Unsubscribe count",
                "name": "unsubscribe_count",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Marketing email performance observations for aggregate send, open, click, bounce, unsubscribe, and conversion review.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "HubSpot Marketing API email performance",
              "spec_name": "hubspot_marketing_api_email_performance"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "hubspot_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"email_performance_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Marketing email id\",\n      \"name\": \"marketing_email_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Campaign id\",\n      \"name\": \"campaign_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Report date\",\n      \"name\": \"date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Sent count\",\n      \"name\": \"sent_count\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Open count\",\n      \"name\": \"open_count\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Click count\",\n      \"name\": \"click_count\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Bounce count\",\n      \"name\": \"bounce_count\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Unsubscribe count\",\n      \"name\": \"unsubscribe_count\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Marketing email performance observations for aggregate send, open, click, bounce, unsubscribe, and conversion review.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"HubSpot Marketing API email performance\",\n    \"spec_name\": \"hubspot_marketing_api_email_performance\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"hubspot_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "hubspot"
          ]
        },
        {
          "specName": "hubspot_marketing_api_landing_pages",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "landing_page_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Campaign id",
                "name": "campaign_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Page name",
                "name": "page_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed page URL",
                "name": "page_url_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Publish status",
                "name": "publish_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Embedded form id",
                "name": "form_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Published timestamp",
                "name": "published_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Landing page observations for campaign landing pages, URL tokens, publish status, forms, and conversion review.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "HubSpot Marketing API landing pages",
              "spec_name": "hubspot_marketing_api_landing_pages"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "hubspot_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"landing_page_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Campaign id\",\n      \"name\": \"campaign_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Page name\",\n      \"name\": \"page_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed page URL\",\n      \"name\": \"page_url_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Publish status\",\n      \"name\": \"publish_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Embedded form id\",\n      \"name\": \"form_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Published timestamp\",\n      \"name\": \"published_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Landing page observations for campaign landing pages, URL tokens, publish status, forms, and conversion review.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"HubSpot Marketing API landing pages\",\n    \"spec_name\": \"hubspot_marketing_api_landing_pages\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"hubspot_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "hubspot"
          ]
        },
        {
          "specName": "hubspot_marketing_api_ctas",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "cta_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Campaign id",
                "name": "campaign_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "CTA name",
                "name": "cta_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "CTA type",
                "name": "cta_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed destination URL",
                "name": "destination_url_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "CTA status",
                "name": "cta_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "CTA observations for button/banner/pop-up assets, campaign linkage, destination, and conversion review.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "HubSpot Marketing API CTAs",
              "spec_name": "hubspot_marketing_api_ctas"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "hubspot_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"cta_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Campaign id\",\n      \"name\": \"campaign_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"CTA name\",\n      \"name\": \"cta_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"CTA type\",\n      \"name\": \"cta_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed destination URL\",\n      \"name\": \"destination_url_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"CTA status\",\n      \"name\": \"cta_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"CTA observations for button/banner/pop-up assets, campaign linkage, destination, and conversion review.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"HubSpot Marketing API CTAs\",\n    \"spec_name\": \"hubspot_marketing_api_ctas\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"hubspot_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "hubspot"
          ]
        },
        {
          "specName": "hubspot_marketing_api_tracking_urls",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "tracking_url_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Campaign id",
                "name": "campaign_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed destination URL",
                "name": "destination_url_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "UTM source",
                "name": "utm_source",
                "tests": [],
                "type": "string"
              },
              {
                "description": "UTM medium",
                "name": "utm_medium",
                "tests": [],
                "type": "string"
              },
              {
                "description": "UTM campaign",
                "name": "utm_campaign",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed short URL",
                "name": "short_url_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Tracking URL observations for UTM campaign/source/medium content and attribution review.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "HubSpot Marketing API tracking URLs",
              "spec_name": "hubspot_marketing_api_tracking_urls"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "hubspot_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"tracking_url_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Campaign id\",\n      \"name\": \"campaign_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed destination URL\",\n      \"name\": \"destination_url_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"UTM source\",\n      \"name\": \"utm_source\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"UTM medium\",\n      \"name\": \"utm_medium\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"UTM campaign\",\n      \"name\": \"utm_campaign\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed short URL\",\n      \"name\": \"short_url_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Tracking URL observations for UTM campaign/source/medium content and attribution review.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"HubSpot Marketing API tracking URLs\",\n    \"spec_name\": \"hubspot_marketing_api_tracking_urls\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"hubspot_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "hubspot"
          ]
        },
        {
          "specName": "hubspot_marketing_api_workflows",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "workflow_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Workflow name",
                "name": "workflow_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Workflow status",
                "name": "workflow_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Enrollment object type",
                "name": "object_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Trigger count",
                "name": "trigger_count",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Action count",
                "name": "action_count",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Last updated timestamp",
                "name": "last_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Workflow observations for automation status, enrollment object, trigger/action counts, and lifecycle automation review.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "HubSpot Marketing API workflows",
              "spec_name": "hubspot_marketing_api_workflows"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "hubspot_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"workflow_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Workflow name\",\n      \"name\": \"workflow_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Workflow status\",\n      \"name\": \"workflow_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Enrollment object type\",\n      \"name\": \"object_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Trigger count\",\n      \"name\": \"trigger_count\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Action count\",\n      \"name\": \"action_count\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Last updated timestamp\",\n      \"name\": \"last_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Workflow observations for automation status, enrollment object, trigger/action counts, and lifecycle automation review.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"HubSpot Marketing API workflows\",\n    \"spec_name\": \"hubspot_marketing_api_workflows\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"hubspot_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "hubspot"
          ]
        },
        {
          "specName": "hubspot_marketing_api_workflow_enrollments",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "workflow_enrollment_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Workflow id",
                "name": "workflow_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Object type",
                "name": "object_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Object id",
                "name": "object_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Enrollment timestamp",
                "name": "enrolled_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Enrollment status",
                "name": "enrollment_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Completed timestamp",
                "name": "completed_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Workflow enrollment observations for enrolled objects, enrollment state, completion, suppression, and automation health.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "HubSpot Marketing API workflow enrollments",
              "spec_name": "hubspot_marketing_api_workflow_enrollments"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "hubspot_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"workflow_enrollment_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Workflow id\",\n      \"name\": \"workflow_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Object type\",\n      \"name\": \"object_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Object id\",\n      \"name\": \"object_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Enrollment timestamp\",\n      \"name\": \"enrolled_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Enrollment status\",\n      \"name\": \"enrollment_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Completed timestamp\",\n      \"name\": \"completed_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Workflow enrollment observations for enrolled objects, enrollment state, completion, suppression, and automation health.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"HubSpot Marketing API workflow enrollments\",\n    \"spec_name\": \"hubspot_marketing_api_workflow_enrollments\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"hubspot_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "hubspot"
          ]
        },
        {
          "specName": "hubspot_marketing_api_social_posts",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "social_post_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Campaign id",
                "name": "campaign_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Social network",
                "name": "network",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Post status",
                "name": "post_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Published timestamp",
                "name": "published_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed message text",
                "name": "message_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed destination URL",
                "name": "destination_url_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Social post observations for published or scheduled social content, network, campaign linkage, and engagement review.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "HubSpot Marketing API social posts",
              "spec_name": "hubspot_marketing_api_social_posts"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "hubspot_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"social_post_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Campaign id\",\n      \"name\": \"campaign_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Social network\",\n      \"name\": \"network\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Post status\",\n      \"name\": \"post_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Published timestamp\",\n      \"name\": \"published_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed message text\",\n      \"name\": \"message_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed destination URL\",\n      \"name\": \"destination_url_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Social post observations for published or scheduled social content, network, campaign linkage, and engagement review.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"HubSpot Marketing API social posts\",\n    \"spec_name\": \"hubspot_marketing_api_social_posts\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"hubspot_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "hubspot"
          ]
        },
        {
          "specName": "hubspot_marketing_api_ad_campaigns",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "hubspot_ad_campaign_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "HubSpot campaign id",
                "name": "campaign_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Ad network",
                "name": "ad_network",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External campaign id",
                "name": "external_campaign_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Spend amount",
                "name": "spend_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Contacts count",
                "name": "contacts_count",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Revenue amount",
                "name": "revenue_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "HubSpot ad campaign observations for connected ad accounts, campaign linkage, spend, contacts, and revenue review.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "HubSpot Marketing API ad campaigns",
              "spec_name": "hubspot_marketing_api_ad_campaigns"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "hubspot_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"hubspot_ad_campaign_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"HubSpot campaign id\",\n      \"name\": \"campaign_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Ad network\",\n      \"name\": \"ad_network\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External campaign id\",\n      \"name\": \"external_campaign_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Spend amount\",\n      \"name\": \"spend_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Contacts count\",\n      \"name\": \"contacts_count\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Revenue amount\",\n      \"name\": \"revenue_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"HubSpot ad campaign observations for connected ad accounts, campaign linkage, spend, contacts, and revenue review.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"HubSpot Marketing API ad campaigns\",\n    \"spec_name\": \"hubspot_marketing_api_ad_campaigns\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"hubspot_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "hubspot"
          ]
        },
        {
          "specName": "hubspot_marketing_api_webhook_events",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "marketing_webhook_event_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Subscription type",
                "name": "subscription_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Asset type",
                "name": "asset_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Asset id",
                "name": "asset_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Event type",
                "name": "event_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Occurred timestamp",
                "name": "occurred_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Marketing webhook event observations for campaign, email, form, list, workflow, and asset changes.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "HubSpot Marketing API webhook events",
              "spec_name": "hubspot_marketing_api_webhook_events"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "hubspot_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"marketing_webhook_event_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Subscription type\",\n      \"name\": \"subscription_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Asset type\",\n      \"name\": \"asset_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Asset id\",\n      \"name\": \"asset_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Event type\",\n      \"name\": \"event_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Occurred timestamp\",\n      \"name\": \"occurred_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Marketing webhook event observations for campaign, email, form, list, workflow, and asset changes.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"HubSpot Marketing API webhook events\",\n    \"spec_name\": \"hubspot_marketing_api_webhook_events\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"hubspot_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "hubspot"
          ]
        },
        {
          "specName": "hubspot_marketing_agent_api_campaign_updates",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "campaign_update_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "campaign_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Campaign name",
                "name": "campaign_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Field name",
                "name": "field_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed current value",
                "name": "current_value_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed proposed value",
                "name": "proposed_value_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed HubSpot campaign create/update proposals before outbound HubSpot sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "HubSpot Marketing agent API campaign updates",
              "spec_name": "hubspot_marketing_agent_api_campaign_updates",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "hubspot_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"campaign_update_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"campaign_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Campaign name\",\n      \"name\": \"campaign_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Field name\",\n      \"name\": \"field_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed current value\",\n      \"name\": \"current_value_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed proposed value\",\n      \"name\": \"proposed_value_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed HubSpot campaign create/update proposals before outbound HubSpot sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"HubSpot Marketing agent API campaign updates\",\n    \"spec_name\": \"hubspot_marketing_agent_api_campaign_updates\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"hubspot_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "hubspot"
          ]
        },
        {
          "specName": "hubspot_marketing_agent_api_email_updates",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "email_update_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "marketing_email_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Campaign id",
                "name": "campaign_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Field name",
                "name": "field_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed current value",
                "name": "current_value_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed proposed value",
                "name": "proposed_value_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed HubSpot marketing email update proposals before outbound HubSpot sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "HubSpot Marketing agent API email updates",
              "spec_name": "hubspot_marketing_agent_api_email_updates",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "hubspot_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"email_update_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"marketing_email_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Campaign id\",\n      \"name\": \"campaign_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Field name\",\n      \"name\": \"field_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed current value\",\n      \"name\": \"current_value_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed proposed value\",\n      \"name\": \"proposed_value_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed HubSpot marketing email update proposals before outbound HubSpot sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"HubSpot Marketing agent API email updates\",\n    \"spec_name\": \"hubspot_marketing_agent_api_email_updates\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"hubspot_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "hubspot"
          ]
        },
        {
          "specName": "hubspot_marketing_agent_api_workflow_updates",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "workflow_update_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "workflow_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Workflow name",
                "name": "workflow_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Requested workflow update",
                "name": "requested_update",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Current status",
                "name": "current_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Proposed status",
                "name": "proposed_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed HubSpot workflow update proposals before outbound HubSpot sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "HubSpot Marketing agent API workflow updates",
              "spec_name": "hubspot_marketing_agent_api_workflow_updates",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "hubspot_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"workflow_update_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"workflow_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Workflow name\",\n      \"name\": \"workflow_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested workflow update\",\n      \"name\": \"requested_update\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Current status\",\n      \"name\": \"current_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Proposed status\",\n      \"name\": \"proposed_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed HubSpot workflow update proposals before outbound HubSpot sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"HubSpot Marketing agent API workflow updates\",\n    \"spec_name\": \"hubspot_marketing_agent_api_workflow_updates\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"hubspot_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "hubspot"
          ]
        },
        {
          "specName": "hubspot_marketing_agent_api_list_updates",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "list_update_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "list_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "List name",
                "name": "list_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Object type",
                "name": "object_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Requested list update",
                "name": "requested_update",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Expected member count delta",
                "name": "member_count_delta",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed HubSpot list update proposals before outbound HubSpot sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "HubSpot Marketing agent API list updates",
              "spec_name": "hubspot_marketing_agent_api_list_updates",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "hubspot_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"list_update_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"list_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"List name\",\n      \"name\": \"list_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Object type\",\n      \"name\": \"object_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested list update\",\n      \"name\": \"requested_update\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Expected member count delta\",\n      \"name\": \"member_count_delta\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed HubSpot list update proposals before outbound HubSpot sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"HubSpot Marketing agent API list updates\",\n    \"spec_name\": \"hubspot_marketing_agent_api_list_updates\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"hubspot_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "hubspot"
          ]
        },
        {
          "specName": "hubspot_marketing_agent_api_asset_association_updates",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "asset_association_update_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "campaign_asset_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Campaign id",
                "name": "campaign_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Asset type",
                "name": "asset_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Asset id",
                "name": "asset_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Association action",
                "name": "association_action",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed HubSpot campaign asset association proposals before outbound HubSpot sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "HubSpot Marketing agent API asset association updates",
              "spec_name": "hubspot_marketing_agent_api_asset_association_updates",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "hubspot_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"asset_association_update_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"campaign_asset_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Campaign id\",\n      \"name\": \"campaign_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Asset type\",\n      \"name\": \"asset_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Asset id\",\n      \"name\": \"asset_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Association action\",\n      \"name\": \"association_action\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed HubSpot campaign asset association proposals before outbound HubSpot sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"HubSpot Marketing agent API asset association updates\",\n    \"spec_name\": \"hubspot_marketing_agent_api_asset_association_updates\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"hubspot_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "hubspot"
          ]
        }
      ]
    },
    {
      "id": "hubspot_commerce_library",
      "type": "collection",
      "domains": [
        "billing",
        "finance",
        "crm"
      ],
      "systems": [
        "hubspot"
      ],
      "version": "1.0.0",
      "summary": "HubSpot Commerce Hub specs for invoices, invoice line items, payments, payment links, subscriptions, subscription line items, payment schedules, discounts, fees, taxes, revenue events, webhook events, and governed commerce updates.",
      "coverageStatus": "Core",
      "coverageNotes": "Covers common Commerce Hub records used for invoice, payment, subscription, quote/deal revenue, and connected Stripe/HubSpot payment review. It does not replace payment processor settlement records, model raw payment details, or mirror every account-specific commerce property.",
      "sourceDocs": [
        {
          "label": "HubSpot Invoices API",
          "url": "https://developers.hubspot.com/docs/api/commerce/invoices"
        },
        {
          "label": "HubSpot Payments API",
          "url": "https://developers.hubspot.com/docs/api/commerce/payments"
        },
        {
          "label": "HubSpot Subscriptions API",
          "url": "https://developers.hubspot.com/docs/reference/api/crm/commerce/subscriptions"
        }
      ],
      "nextObjects": [
        "orders",
        "payment_processing_fees",
        "refunds",
        "commerce_reports",
        "tax_settings",
        "buyer_checkout_sessions",
        "subscription_invoice_runs",
        "stripe_processor_links"
      ],
      "omittedObjects": [
        "OAuth/token management",
        "raw card or bank details",
        "processor credentials",
        "complete Stripe settlement replacement",
        "every account-specific commerce property"
      ],
      "needs": [
        "A HubSpot agent/operator role. The generated calls use hubspot_agent."
      ],
      "usefulFor": [
        "Commerce Hub billing memory",
        "Invoice and payment review",
        "Subscription lifecycle review",
        "Deal-to-invoice reconciliation",
        "HubSpot/Stripe payment comparison",
        "Governed invoice, subscription, payment link, and revenue updates"
      ],
      "extendWith": [
        "Links from Stripe payment intents and invoices into HubSpot payments and invoices",
        "Links from Shopify/Amazon/TikTok orders into HubSpot deals and invoices",
        "Revenue recognition handoff into QuickBooks or NetSuite"
      ],
      "searchTerms": [
        "hubspot commerce",
        "commerce hub",
        "invoices",
        "payments",
        "subscriptions",
        "payment links",
        "payment schedules",
        "stripe processing",
        "quotes",
        "deals",
        "line items",
        "revenue events"
      ],
      "links": [
        {
          "from": "hubspot_commerce_agent_api_invoice_updates",
          "to": "hubspot_commerce_api_invoices",
          "kind": "source_link",
          "description": "Invoice update proposals cite current invoice observations."
        },
        {
          "from": "hubspot_commerce_agent_api_subscription_updates",
          "to": "hubspot_commerce_api_subscriptions",
          "kind": "source_link",
          "description": "Subscription update proposals cite current subscription observations."
        },
        {
          "from": "hubspot_commerce_agent_api_payment_link_updates",
          "to": "hubspot_commerce_api_payment_links",
          "kind": "source_link",
          "description": "Payment link update proposals cite current payment link observations."
        },
        {
          "from": "hubspot_commerce_agent_api_revenue_record_updates",
          "to": "hubspot_api_deals",
          "kind": "source_link",
          "description": "Revenue record proposals cite current deal observations from the CRM shelf."
        },
        {
          "from": "hubspot_commerce_agent_api_revenue_record_updates",
          "to": "hubspot_commerce_api_payments",
          "kind": "source_link",
          "description": "Revenue record proposals can cite current payment observations."
        }
      ],
      "installedSpecs": [
        {
          "id": "hubspot_commerce_api_invoices",
          "domain": "Observation",
          "purpose": "Invoice observations.",
          "systems": [
            "hubspot"
          ]
        },
        {
          "id": "hubspot_commerce_api_invoice_line_items",
          "domain": "Observation",
          "purpose": "Invoice line item observations.",
          "systems": [
            "hubspot"
          ]
        },
        {
          "id": "hubspot_commerce_api_payments",
          "domain": "Observation",
          "purpose": "Payment observations.",
          "systems": [
            "hubspot"
          ]
        },
        {
          "id": "hubspot_commerce_api_payment_links",
          "domain": "Observation",
          "purpose": "Payment link observations.",
          "systems": [
            "hubspot"
          ]
        },
        {
          "id": "hubspot_commerce_api_subscriptions",
          "domain": "Observation",
          "purpose": "Subscription observations.",
          "systems": [
            "hubspot"
          ]
        },
        {
          "id": "hubspot_commerce_api_subscription_line_items",
          "domain": "Observation",
          "purpose": "Subscription line item observations.",
          "systems": [
            "hubspot"
          ]
        },
        {
          "id": "hubspot_commerce_api_payment_schedules",
          "domain": "Observation",
          "purpose": "Payment schedule observations.",
          "systems": [
            "hubspot"
          ]
        },
        {
          "id": "hubspot_commerce_api_discounts_fees_taxes",
          "domain": "Observation",
          "purpose": "Discount, fee, and tax observations.",
          "systems": [
            "hubspot"
          ]
        },
        {
          "id": "hubspot_commerce_api_revenue_events",
          "domain": "Observation",
          "purpose": "Revenue event observations.",
          "systems": [
            "hubspot"
          ]
        },
        {
          "id": "hubspot_commerce_api_webhook_events",
          "domain": "Observation",
          "purpose": "Commerce webhook event observations.",
          "systems": [
            "hubspot"
          ]
        },
        {
          "id": "hubspot_commerce_agent_api_invoice_updates",
          "domain": "Commitment workflow",
          "purpose": "Governed invoice updates.",
          "systems": [
            "hubspot"
          ]
        },
        {
          "id": "hubspot_commerce_agent_api_subscription_updates",
          "domain": "Commitment workflow",
          "purpose": "Governed subscription updates.",
          "systems": [
            "hubspot"
          ]
        },
        {
          "id": "hubspot_commerce_agent_api_payment_link_updates",
          "domain": "Commitment workflow",
          "purpose": "Governed payment link updates.",
          "systems": [
            "hubspot"
          ]
        },
        {
          "id": "hubspot_commerce_agent_api_revenue_record_updates",
          "domain": "Commitment workflow",
          "purpose": "Governed revenue record updates.",
          "systems": [
            "hubspot"
          ]
        }
      ],
      "createSpecPayloads": [
        {
          "specName": "hubspot_commerce_api_invoices",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "invoice_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Deal id",
                "name": "deal_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Company id",
                "name": "company_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Contact id",
                "name": "contact_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Invoice number",
                "name": "invoice_number",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Invoice status",
                "name": "invoice_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Payment status",
                "name": "payment_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Total amount",
                "name": "total_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency code",
                "name": "currency_code",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Invoice observations for HubSpot Commerce Hub billing, invoice status, associated deals, payment status, and totals.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "HubSpot Commerce API invoices",
              "spec_name": "hubspot_commerce_api_invoices"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "hubspot_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"invoice_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Deal id\",\n      \"name\": \"deal_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Company id\",\n      \"name\": \"company_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Contact id\",\n      \"name\": \"contact_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Invoice number\",\n      \"name\": \"invoice_number\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Invoice status\",\n      \"name\": \"invoice_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Payment status\",\n      \"name\": \"payment_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Total amount\",\n      \"name\": \"total_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency code\",\n      \"name\": \"currency_code\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Invoice observations for HubSpot Commerce Hub billing, invoice status, associated deals, payment status, and totals.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"HubSpot Commerce API invoices\",\n    \"spec_name\": \"hubspot_commerce_api_invoices\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"hubspot_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "hubspot"
          ]
        },
        {
          "specName": "hubspot_commerce_api_invoice_line_items",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "invoice_line_item_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Invoice id",
                "name": "invoice_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Product id",
                "name": "product_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Line item id",
                "name": "line_item_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "SKU",
                "name": "sku",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Quantity",
                "name": "quantity",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Unit price",
                "name": "unit_price",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Line amount",
                "name": "line_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Invoice line item observations for invoiced products, quantities, discounts, taxes, and revenue reconciliation.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "HubSpot Commerce API invoice line items",
              "spec_name": "hubspot_commerce_api_invoice_line_items"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "hubspot_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"invoice_line_item_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Invoice id\",\n      \"name\": \"invoice_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Product id\",\n      \"name\": \"product_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Line item id\",\n      \"name\": \"line_item_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"SKU\",\n      \"name\": \"sku\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Quantity\",\n      \"name\": \"quantity\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Unit price\",\n      \"name\": \"unit_price\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Line amount\",\n      \"name\": \"line_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Invoice line item observations for invoiced products, quantities, discounts, taxes, and revenue reconciliation.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"HubSpot Commerce API invoice line items\",\n    \"spec_name\": \"hubspot_commerce_api_invoice_line_items\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"hubspot_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "hubspot"
          ]
        },
        {
          "specName": "hubspot_commerce_api_payments",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "payment_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Invoice id",
                "name": "invoice_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Deal id",
                "name": "deal_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Payment status",
                "name": "payment_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Payment method type",
                "name": "payment_method_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Payment amount",
                "name": "amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Fee amount",
                "name": "fee_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency code",
                "name": "currency_code",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Payment observations for HubSpot payments or connected Stripe payment processing, payment status, amount, fees, and associated records.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "HubSpot Commerce API payments",
              "spec_name": "hubspot_commerce_api_payments"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "hubspot_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"payment_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Invoice id\",\n      \"name\": \"invoice_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Deal id\",\n      \"name\": \"deal_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Payment status\",\n      \"name\": \"payment_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Payment method type\",\n      \"name\": \"payment_method_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Payment amount\",\n      \"name\": \"amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Fee amount\",\n      \"name\": \"fee_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency code\",\n      \"name\": \"currency_code\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Payment observations for HubSpot payments or connected Stripe payment processing, payment status, amount, fees, and associated records.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"HubSpot Commerce API payments\",\n    \"spec_name\": \"hubspot_commerce_api_payments\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"hubspot_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "hubspot"
          ]
        },
        {
          "specName": "hubspot_commerce_api_payment_links",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "payment_link_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Payment link name",
                "name": "payment_link_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed payment link URL",
                "name": "payment_link_url_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Active flag",
                "name": "active",
                "tests": [],
                "type": "boolean"
              },
              {
                "description": "Line item count",
                "name": "line_item_count",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Created timestamp",
                "name": "created_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Payment link observations for checkout links, associated products, active status, and buyer flow review.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "HubSpot Commerce API payment links",
              "spec_name": "hubspot_commerce_api_payment_links"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "hubspot_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"payment_link_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Payment link name\",\n      \"name\": \"payment_link_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed payment link URL\",\n      \"name\": \"payment_link_url_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Active flag\",\n      \"name\": \"active\",\n      \"tests\": [],\n      \"type\": \"boolean\"\n    },\n    {\n      \"description\": \"Line item count\",\n      \"name\": \"line_item_count\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Created timestamp\",\n      \"name\": \"created_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Payment link observations for checkout links, associated products, active status, and buyer flow review.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"HubSpot Commerce API payment links\",\n    \"spec_name\": \"hubspot_commerce_api_payment_links\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"hubspot_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "hubspot"
          ]
        },
        {
          "specName": "hubspot_commerce_api_subscriptions",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "subscription_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Contact id",
                "name": "contact_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Company id",
                "name": "company_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Deal id",
                "name": "deal_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Subscription status",
                "name": "subscription_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Billing frequency",
                "name": "billing_frequency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Recurring amount",
                "name": "recurring_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency code",
                "name": "currency_code",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Subscription observations for recurring revenue lifecycle, billing cadence, amount, customer, and invoice creation.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "HubSpot Commerce API subscriptions",
              "spec_name": "hubspot_commerce_api_subscriptions"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "hubspot_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"subscription_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Contact id\",\n      \"name\": \"contact_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Company id\",\n      \"name\": \"company_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Deal id\",\n      \"name\": \"deal_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Subscription status\",\n      \"name\": \"subscription_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Billing frequency\",\n      \"name\": \"billing_frequency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Recurring amount\",\n      \"name\": \"recurring_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency code\",\n      \"name\": \"currency_code\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Subscription observations for recurring revenue lifecycle, billing cadence, amount, customer, and invoice creation.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"HubSpot Commerce API subscriptions\",\n    \"spec_name\": \"hubspot_commerce_api_subscriptions\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"hubspot_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "hubspot"
          ]
        },
        {
          "specName": "hubspot_commerce_api_subscription_line_items",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "subscription_line_item_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Subscription id",
                "name": "subscription_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Product id",
                "name": "product_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Line item id",
                "name": "line_item_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "SKU",
                "name": "sku",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Quantity",
                "name": "quantity",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Recurring price",
                "name": "recurring_price",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Subscription line item observations for recurring products, quantities, prices, and renewal review.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "HubSpot Commerce API subscription line items",
              "spec_name": "hubspot_commerce_api_subscription_line_items"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "hubspot_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"subscription_line_item_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Subscription id\",\n      \"name\": \"subscription_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Product id\",\n      \"name\": \"product_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Line item id\",\n      \"name\": \"line_item_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"SKU\",\n      \"name\": \"sku\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Quantity\",\n      \"name\": \"quantity\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Recurring price\",\n      \"name\": \"recurring_price\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Subscription line item observations for recurring products, quantities, prices, and renewal review.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"HubSpot Commerce API subscription line items\",\n    \"spec_name\": \"hubspot_commerce_api_subscription_line_items\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"hubspot_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "hubspot"
          ]
        },
        {
          "specName": "hubspot_commerce_api_payment_schedules",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "payment_schedule_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Invoice id",
                "name": "invoice_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Subscription id",
                "name": "subscription_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Schedule status",
                "name": "schedule_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Due date",
                "name": "due_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Scheduled amount",
                "name": "scheduled_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency code",
                "name": "currency_code",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Payment schedule observations for installments, due dates, amounts, and collection state.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "HubSpot Commerce API payment schedules",
              "spec_name": "hubspot_commerce_api_payment_schedules"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "hubspot_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"payment_schedule_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Invoice id\",\n      \"name\": \"invoice_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Subscription id\",\n      \"name\": \"subscription_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Schedule status\",\n      \"name\": \"schedule_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Due date\",\n      \"name\": \"due_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Scheduled amount\",\n      \"name\": \"scheduled_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency code\",\n      \"name\": \"currency_code\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Payment schedule observations for installments, due dates, amounts, and collection state.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"HubSpot Commerce API payment schedules\",\n    \"spec_name\": \"hubspot_commerce_api_payment_schedules\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"hubspot_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "hubspot"
          ]
        },
        {
          "specName": "hubspot_commerce_api_discounts_fees_taxes",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "commerce_adjustment_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Parent object type",
                "name": "parent_object_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Parent object id",
                "name": "parent_object_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Discount, fee, or tax",
                "name": "adjustment_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Adjustment name",
                "name": "adjustment_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Adjustment amount",
                "name": "amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency code",
                "name": "currency_code",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Discount, fee, and tax observations for quotes, invoices, and line items.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "HubSpot Commerce API discounts fees taxes",
              "spec_name": "hubspot_commerce_api_discounts_fees_taxes"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "hubspot_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"commerce_adjustment_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Parent object type\",\n      \"name\": \"parent_object_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Parent object id\",\n      \"name\": \"parent_object_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Discount, fee, or tax\",\n      \"name\": \"adjustment_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Adjustment name\",\n      \"name\": \"adjustment_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Adjustment amount\",\n      \"name\": \"amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency code\",\n      \"name\": \"currency_code\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Discount, fee, and tax observations for quotes, invoices, and line items.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"HubSpot Commerce API discounts fees taxes\",\n    \"spec_name\": \"hubspot_commerce_api_discounts_fees_taxes\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"hubspot_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "hubspot"
          ]
        },
        {
          "specName": "hubspot_commerce_api_revenue_events",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "revenue_event_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Event type",
                "name": "event_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Event timestamp",
                "name": "event_timestamp",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Deal id",
                "name": "deal_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Invoice id",
                "name": "invoice_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Payment id",
                "name": "payment_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Event amount",
                "name": "amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency code",
                "name": "currency_code",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Revenue event observations for invoice, payment, subscription, quote, or deal revenue movement.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "HubSpot Commerce API revenue events",
              "spec_name": "hubspot_commerce_api_revenue_events"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "hubspot_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"revenue_event_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Event type\",\n      \"name\": \"event_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Event timestamp\",\n      \"name\": \"event_timestamp\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Deal id\",\n      \"name\": \"deal_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Invoice id\",\n      \"name\": \"invoice_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Payment id\",\n      \"name\": \"payment_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Event amount\",\n      \"name\": \"amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency code\",\n      \"name\": \"currency_code\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Revenue event observations for invoice, payment, subscription, quote, or deal revenue movement.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"HubSpot Commerce API revenue events\",\n    \"spec_name\": \"hubspot_commerce_api_revenue_events\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"hubspot_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "hubspot"
          ]
        },
        {
          "specName": "hubspot_commerce_api_webhook_events",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "commerce_webhook_event_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Subscription type",
                "name": "subscription_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Object type",
                "name": "object_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Object id",
                "name": "object_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Event type",
                "name": "event_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Occurred timestamp",
                "name": "occurred_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Commerce webhook event observations for invoice, payment, subscription, payment link, quote, and line item changes.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "HubSpot Commerce API webhook events",
              "spec_name": "hubspot_commerce_api_webhook_events"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "hubspot_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"commerce_webhook_event_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Subscription type\",\n      \"name\": \"subscription_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Object type\",\n      \"name\": \"object_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Object id\",\n      \"name\": \"object_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Event type\",\n      \"name\": \"event_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Occurred timestamp\",\n      \"name\": \"occurred_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Commerce webhook event observations for invoice, payment, subscription, payment link, quote, and line item changes.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"HubSpot Commerce API webhook events\",\n    \"spec_name\": \"hubspot_commerce_api_webhook_events\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"hubspot_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "hubspot"
          ]
        },
        {
          "specName": "hubspot_commerce_agent_api_invoice_updates",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "invoice_update_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "invoice_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Deal id",
                "name": "deal_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Invoice number",
                "name": "invoice_number",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Field name",
                "name": "field_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed current value",
                "name": "current_value_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed proposed value",
                "name": "proposed_value_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed HubSpot invoice create/update proposals before outbound HubSpot sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "HubSpot Commerce agent API invoice updates",
              "spec_name": "hubspot_commerce_agent_api_invoice_updates",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "hubspot_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"invoice_update_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"invoice_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Deal id\",\n      \"name\": \"deal_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Invoice number\",\n      \"name\": \"invoice_number\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Field name\",\n      \"name\": \"field_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed current value\",\n      \"name\": \"current_value_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed proposed value\",\n      \"name\": \"proposed_value_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed HubSpot invoice create/update proposals before outbound HubSpot sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"HubSpot Commerce agent API invoice updates\",\n    \"spec_name\": \"hubspot_commerce_agent_api_invoice_updates\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"hubspot_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "hubspot"
          ]
        },
        {
          "specName": "hubspot_commerce_agent_api_subscription_updates",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "subscription_update_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "subscription_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Deal id",
                "name": "deal_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Subscription status",
                "name": "subscription_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Requested subscription update",
                "name": "requested_update",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Recurring amount",
                "name": "recurring_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency code",
                "name": "currency_code",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed HubSpot subscription create/update proposals before outbound HubSpot sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "HubSpot Commerce agent API subscription updates",
              "spec_name": "hubspot_commerce_agent_api_subscription_updates",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "hubspot_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"subscription_update_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"subscription_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Deal id\",\n      \"name\": \"deal_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Subscription status\",\n      \"name\": \"subscription_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested subscription update\",\n      \"name\": \"requested_update\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Recurring amount\",\n      \"name\": \"recurring_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency code\",\n      \"name\": \"currency_code\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed HubSpot subscription create/update proposals before outbound HubSpot sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"HubSpot Commerce agent API subscription updates\",\n    \"spec_name\": \"hubspot_commerce_agent_api_subscription_updates\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"hubspot_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "hubspot"
          ]
        },
        {
          "specName": "hubspot_commerce_agent_api_payment_link_updates",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "payment_link_update_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "payment_link_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Payment link name",
                "name": "payment_link_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Requested payment link update",
                "name": "requested_update",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Line item count",
                "name": "line_item_count",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Active flag",
                "name": "active",
                "tests": [],
                "type": "boolean"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed HubSpot payment link create/update proposals before outbound HubSpot sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "HubSpot Commerce agent API payment link updates",
              "spec_name": "hubspot_commerce_agent_api_payment_link_updates",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "hubspot_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"payment_link_update_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"payment_link_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Payment link name\",\n      \"name\": \"payment_link_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested payment link update\",\n      \"name\": \"requested_update\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Line item count\",\n      \"name\": \"line_item_count\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Active flag\",\n      \"name\": \"active\",\n      \"tests\": [],\n      \"type\": \"boolean\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed HubSpot payment link create/update proposals before outbound HubSpot sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"HubSpot Commerce agent API payment link updates\",\n    \"spec_name\": \"hubspot_commerce_agent_api_payment_link_updates\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"hubspot_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "hubspot"
          ]
        },
        {
          "specName": "hubspot_commerce_agent_api_revenue_record_updates",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "revenue_record_update_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "deal_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Invoice id",
                "name": "invoice_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Payment id",
                "name": "payment_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Field name",
                "name": "field_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Current amount",
                "name": "current_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Proposed amount",
                "name": "proposed_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency code",
                "name": "currency_code",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed HubSpot commerce-to-CRM revenue update proposals before outbound HubSpot sync.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "HubSpot Commerce agent API revenue record updates",
              "spec_name": "hubspot_commerce_agent_api_revenue_record_updates",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "hubspot_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"revenue_record_update_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"deal_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Invoice id\",\n      \"name\": \"invoice_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Payment id\",\n      \"name\": \"payment_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Field name\",\n      \"name\": \"field_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Current amount\",\n      \"name\": \"current_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Proposed amount\",\n      \"name\": \"proposed_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency code\",\n      \"name\": \"currency_code\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed HubSpot commerce-to-CRM revenue update proposals before outbound HubSpot sync.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"HubSpot Commerce agent API revenue record updates\",\n    \"spec_name\": \"hubspot_commerce_agent_api_revenue_record_updates\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"hubspot_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "hubspot"
          ]
        }
      ]
    },
    {
      "id": "financial_institution_treasury_library",
      "type": "collection",
      "domains": [
        "finance",
        "treasury",
        "reconciliation"
      ],
      "systems": [
        "financial_institution",
        "treasury"
      ],
      "version": "1.0.0",
      "summary": "Financial institution and treasury specs for bank account masters, cash balances, statement transactions, intraday activity, lockbox remittances, deposit advices, check clearing, positive pay, ACH payments, ACH returns and notices of change, wires, bank fees, cash forecasts, and bank reconciliation findings.",
      "coverageStatus": "Core",
      "coverageNotes": "Covers common treasury office file and portal outputs as CSV-ready observations plus approval-first outbound payment commitments. XML-only bank messages are intentionally omitted until Airlock supports XML ingestion.",
      "sourceDocs": [
        {
          "label": "Nacha ACH File Overview",
          "url": "https://achdevguide.nacha.org/ach-file-overview"
        },
        {
          "label": "Goldman Sachs ACH Returns & NOC File",
          "url": "https://developer.gs.com/docs/services/transaction-banking/ach-inbound/"
        },
        {
          "label": "RBC Machine Readable Statements",
          "url": "https://www.rbccm.com/en/expertise/rbcclear/reports/machine-readable-statements"
        }
      ],
      "nextObjects": [
        "bank-admin entitlement exports",
        "merchant deposit detail",
        "debt schedules",
        "investment balances",
        "intercompany transfers",
        "fraud decision files",
        "bank confirmation letters"
      ],
      "omittedObjects": [
        "XML-only statement and payment messages",
        "bank credentials",
        "raw account numbers",
        "raw routing numbers",
        "raw check images",
        "unreviewed automatic payments"
      ],
      "needs": [
        "A financial institution or treasury agent/operator role. The generated calls use financial_institution_agent and treasury_agent."
      ],
      "usefulFor": [
        "Daily cash positioning",
        "Bank-to-book reconciliation",
        "Lockbox cash application",
        "Positive-pay issue and void review",
        "ACH return follow-up",
        "Wire status review",
        "Bank fee analysis",
        "Cash forecasting"
      ],
      "extendWith": [
        "Links from QuickBooks or NetSuite AP payments into bank payment commitments",
        "Links from Stripe/Square/Shopify/Amazon payouts into bank deposits",
        "Bank-specific file layout notes outside the spec",
        "Expectations for daily balance and statement delivery"
      ],
      "searchTerms": [
        "bank",
        "financial institution",
        "treasury",
        "cash balance",
        "bank transaction",
        "bank statement",
        "bai2",
        "lockbox",
        "remittance",
        "positive pay",
        "check clearing",
        "ach",
        "returns",
        "noc",
        "wire",
        "bank fees",
        "cash forecast",
        "bank reconciliation"
      ],
      "links": [
        {
          "from": "bank_positive_pay_issue_commitments",
          "to": "bank_account_master",
          "kind": "source_link",
          "description": "Positive-pay commitments cite the bank account reference they target."
        },
        {
          "from": "bank_check_clearing_observations",
          "to": "bank_positive_pay_issue_commitments",
          "kind": "source_link",
          "description": "Check clearing observations can be compared to issued positive-pay commitments."
        },
        {
          "from": "bank_ach_return_noc_observations",
          "to": "bank_ach_payment_commitments",
          "kind": "source_link",
          "description": "ACH returns and notices of change cite the original ACH payment commitment where available."
        },
        {
          "from": "bank_wire_status_observations",
          "to": "bank_wire_payment_commitments",
          "kind": "source_link",
          "description": "Wire status observations cite the approved wire payment commitment where available."
        },
        {
          "from": "treasury_cash_forecast_snapshots",
          "to": "bank_cash_balances",
          "kind": "source_link",
          "description": "Cash forecasts can cite current bank balance observations."
        },
        {
          "from": "treasury_cash_forecast_snapshots",
          "to": "bank_intraday_transactions",
          "kind": "source_link",
          "description": "Cash forecasts can cite intraday transaction observations."
        },
        {
          "from": "treasury_bank_reconciliation_findings",
          "to": "bank_statement_transactions",
          "kind": "source_link",
          "description": "Bank reconciliation findings cite bank transaction observations."
        },
        {
          "from": "treasury_bank_reconciliation_findings",
          "to": "bank_cash_balances",
          "kind": "source_link",
          "description": "Bank reconciliation findings cite bank balance observations."
        },
        {
          "from": "treasury_bank_reconciliation_findings",
          "to": "quickbooks_api_deposits",
          "kind": "source_link",
          "description": "Bank reconciliation findings can cite QuickBooks deposit observations."
        },
        {
          "from": "treasury_bank_reconciliation_findings",
          "to": "quickbooks_api_bill_payments",
          "kind": "source_link",
          "description": "Bank reconciliation findings can cite QuickBooks bill payment observations."
        },
        {
          "from": "treasury_bank_reconciliation_findings",
          "to": "netsuite_api_deposits",
          "kind": "source_link",
          "description": "Bank reconciliation findings can cite NetSuite deposit observations."
        },
        {
          "from": "treasury_bank_reconciliation_findings",
          "to": "stripe_api_balance_transactions",
          "kind": "source_link",
          "description": "Bank reconciliation findings can cite Stripe balance transaction observations."
        },
        {
          "from": "treasury_bank_reconciliation_findings",
          "to": "square_api_payouts",
          "kind": "source_link",
          "description": "Bank reconciliation findings can cite Square payout observations."
        }
      ],
      "installedSpecs": [
        {
          "id": "bank_account_master",
          "domain": "Reference",
          "purpose": "Bank account reference memory.",
          "systems": [
            "financial_institution",
            "treasury"
          ]
        },
        {
          "id": "bank_cash_balances",
          "domain": "Observation",
          "purpose": "Cash balance observations.",
          "systems": [
            "financial_institution",
            "treasury"
          ]
        },
        {
          "id": "bank_statement_transactions",
          "domain": "Observation",
          "purpose": "Bank transaction observations.",
          "systems": [
            "financial_institution",
            "treasury"
          ]
        },
        {
          "id": "bank_intraday_transactions",
          "domain": "Observation",
          "purpose": "Intraday cash movement observations.",
          "systems": [
            "financial_institution",
            "treasury"
          ]
        },
        {
          "id": "bank_lockbox_remittance_items",
          "domain": "Observation",
          "purpose": "Lockbox remittance observations.",
          "systems": [
            "financial_institution",
            "treasury"
          ]
        },
        {
          "id": "bank_deposit_advices",
          "domain": "Observation",
          "purpose": "Deposit batch observations.",
          "systems": [
            "financial_institution",
            "treasury"
          ]
        },
        {
          "id": "bank_check_clearing_observations",
          "domain": "Observation",
          "purpose": "Check clearing observations.",
          "systems": [
            "financial_institution",
            "treasury"
          ]
        },
        {
          "id": "bank_positive_pay_issue_commitments",
          "domain": "Commitment workflow",
          "purpose": "Positive-pay issue and void commitments.",
          "systems": [
            "financial_institution",
            "treasury"
          ]
        },
        {
          "id": "bank_ach_payment_commitments",
          "domain": "Commitment workflow",
          "purpose": "ACH payment commitments.",
          "systems": [
            "financial_institution",
            "treasury"
          ]
        },
        {
          "id": "bank_ach_return_noc_observations",
          "domain": "Observation",
          "purpose": "ACH return and notice-of-change observations.",
          "systems": [
            "financial_institution",
            "treasury"
          ]
        },
        {
          "id": "bank_wire_payment_commitments",
          "domain": "Commitment workflow",
          "purpose": "Wire payment commitments.",
          "systems": [
            "financial_institution",
            "treasury"
          ]
        },
        {
          "id": "bank_wire_status_observations",
          "domain": "Observation",
          "purpose": "Wire status observations.",
          "systems": [
            "financial_institution",
            "treasury"
          ]
        },
        {
          "id": "bank_account_analysis_fees",
          "domain": "Observation",
          "purpose": "Bank fee observations.",
          "systems": [
            "financial_institution",
            "treasury"
          ]
        },
        {
          "id": "treasury_cash_forecast_snapshots",
          "domain": "Planning",
          "purpose": "Cash forecast snapshots.",
          "systems": [
            "treasury",
            "financial_institution"
          ]
        },
        {
          "id": "treasury_bank_reconciliation_findings",
          "domain": "Reconciliation",
          "purpose": "Bank-to-book reconciliation findings.",
          "systems": [
            "treasury",
            "financial_institution"
          ]
        }
      ],
      "createSpecPayloads": [
        {
          "specName": "bank_account_master",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "bank_account_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Financial institution name",
                "name": "bank_name",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Tokenized account reference",
                "name": "account_token",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Internal account label",
                "name": "account_name",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Operating, payroll, merchant, savings, loan, or other account type",
                "name": "account_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Account currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Owning business unit",
                "name": "business_unit",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Mapped general-ledger cash account",
                "name": "gl_cash_account",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Role or team responsible for reconciliation",
                "name": "reconciliation_owner",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Bank account reference observations for treasury account ownership, currency, status, and reconciliation routing.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Bank account master",
              "spec_name": "bank_account_master"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "financial_institution_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"bank_account_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Financial institution name\",\n      \"name\": \"bank_name\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Tokenized account reference\",\n      \"name\": \"account_token\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Internal account label\",\n      \"name\": \"account_name\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Operating, payroll, merchant, savings, loan, or other account type\",\n      \"name\": \"account_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Account currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Owning business unit\",\n      \"name\": \"business_unit\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Mapped general-ledger cash account\",\n      \"name\": \"gl_cash_account\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Role or team responsible for reconciliation\",\n      \"name\": \"reconciliation_owner\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Bank account reference observations for treasury account ownership, currency, status, and reconciliation routing.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Bank account master\",\n    \"spec_name\": \"bank_account_master\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"financial_institution_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "financial_institution",
            "treasury"
          ]
        },
        {
          "specName": "bank_cash_balances",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "balance_snapshot_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Bank account id",
                "name": "bank_account_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Balance timestamp",
                "name": "as_of_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Balance date",
                "name": "balance_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Ledger balance",
                "name": "ledger_balance",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Available balance",
                "name": "available_balance",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Collected balance",
                "name": "collected_balance",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Float or unavailable funds amount",
                "name": "float_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Portal, bank file, API, TMS, or manual source",
                "name": "balance_source",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Daily or intraday cash balance observations for ledger, available, collected, float, and credit-line views.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Bank cash balances",
              "spec_name": "bank_cash_balances"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "financial_institution_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"balance_snapshot_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Bank account id\",\n      \"name\": \"bank_account_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Balance timestamp\",\n      \"name\": \"as_of_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Balance date\",\n      \"name\": \"balance_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Ledger balance\",\n      \"name\": \"ledger_balance\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Available balance\",\n      \"name\": \"available_balance\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Collected balance\",\n      \"name\": \"collected_balance\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Float or unavailable funds amount\",\n      \"name\": \"float_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Portal, bank file, API, TMS, or manual source\",\n      \"name\": \"balance_source\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Daily or intraday cash balance observations for ledger, available, collected, float, and credit-line views.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Bank cash balances\",\n    \"spec_name\": \"bank_cash_balances\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"financial_institution_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "financial_institution",
            "treasury"
          ]
        },
        {
          "specName": "bank_statement_transactions",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "bank_transaction_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Bank account id",
                "name": "bank_account_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Statement date",
                "name": "statement_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Posting timestamp or date",
                "name": "posted_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Value date",
                "name": "value_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Bank transaction type or code",
                "name": "transaction_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Debit or credit indicator",
                "name": "debit_credit",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Transaction amount",
                "name": "amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Bank reference number",
                "name": "bank_reference",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Customer or originator reference",
                "name": "customer_reference",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Bank-provided transaction description",
                "name": "description",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed or tokenized counterparty name",
                "name": "counterparty_name_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Bank statement transaction observations from CSV exports, transformed BAI2, or other supported flat-file feeds.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Bank statement transactions",
              "spec_name": "bank_statement_transactions"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "financial_institution_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"bank_transaction_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Bank account id\",\n      \"name\": \"bank_account_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Statement date\",\n      \"name\": \"statement_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Posting timestamp or date\",\n      \"name\": \"posted_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Value date\",\n      \"name\": \"value_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Bank transaction type or code\",\n      \"name\": \"transaction_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Debit or credit indicator\",\n      \"name\": \"debit_credit\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Transaction amount\",\n      \"name\": \"amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Bank reference number\",\n      \"name\": \"bank_reference\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Customer or originator reference\",\n      \"name\": \"customer_reference\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Bank-provided transaction description\",\n      \"name\": \"description\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed or tokenized counterparty name\",\n      \"name\": \"counterparty_name_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Bank statement transaction observations from CSV exports, transformed BAI2, or other supported flat-file feeds.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Bank statement transactions\",\n    \"spec_name\": \"bank_statement_transactions\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"financial_institution_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "financial_institution",
            "treasury"
          ]
        },
        {
          "specName": "bank_intraday_transactions",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "intraday_transaction_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Bank account id",
                "name": "bank_account_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Bank report timestamp",
                "name": "reported_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Expected posting date",
                "name": "expected_post_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Bank transaction type or code",
                "name": "transaction_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Debit or credit indicator",
                "name": "debit_credit",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Transaction amount",
                "name": "amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Bank reference number",
                "name": "bank_reference",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Pending, available, held, reversed, or other status",
                "name": "availability_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Intraday transaction observations used for near-real-time cash positioning before final statement posting.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Bank intraday transactions",
              "spec_name": "bank_intraday_transactions"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "financial_institution_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"intraday_transaction_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Bank account id\",\n      \"name\": \"bank_account_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Bank report timestamp\",\n      \"name\": \"reported_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Expected posting date\",\n      \"name\": \"expected_post_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Bank transaction type or code\",\n      \"name\": \"transaction_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Debit or credit indicator\",\n      \"name\": \"debit_credit\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Transaction amount\",\n      \"name\": \"amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Bank reference number\",\n      \"name\": \"bank_reference\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Pending, available, held, reversed, or other status\",\n      \"name\": \"availability_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Intraday transaction observations used for near-real-time cash positioning before final statement posting.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Bank intraday transactions\",\n    \"spec_name\": \"bank_intraday_transactions\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"financial_institution_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "financial_institution",
            "treasury"
          ]
        },
        {
          "specName": "bank_lockbox_remittance_items",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "remittance_item_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Lockbox identifier",
                "name": "lockbox_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Deposit account id",
                "name": "bank_account_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Bank deposit id",
                "name": "deposit_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Deposit date",
                "name": "deposit_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed or tokenized payer name",
                "name": "payer_name_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Customer reference from remittance detail",
                "name": "customer_reference",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Invoice number from remittance detail",
                "name": "invoice_number",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed or tokenized check number",
                "name": "check_number_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Remittance amount",
                "name": "remittance_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Cash application exception reason",
                "name": "exception_reason",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Lockbox remittance item observations for customer payments, invoice references, deposits, and cash application review.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Bank lockbox remittance items",
              "spec_name": "bank_lockbox_remittance_items"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "financial_institution_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"remittance_item_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Lockbox identifier\",\n      \"name\": \"lockbox_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Deposit account id\",\n      \"name\": \"bank_account_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Bank deposit id\",\n      \"name\": \"deposit_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Deposit date\",\n      \"name\": \"deposit_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed or tokenized payer name\",\n      \"name\": \"payer_name_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Customer reference from remittance detail\",\n      \"name\": \"customer_reference\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Invoice number from remittance detail\",\n      \"name\": \"invoice_number\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed or tokenized check number\",\n      \"name\": \"check_number_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Remittance amount\",\n      \"name\": \"remittance_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Cash application exception reason\",\n      \"name\": \"exception_reason\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Lockbox remittance item observations for customer payments, invoice references, deposits, and cash application review.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Bank lockbox remittance items\",\n    \"spec_name\": \"bank_lockbox_remittance_items\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"financial_institution_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "financial_institution",
            "treasury"
          ]
        },
        {
          "specName": "bank_deposit_advices",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "deposit_advice_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Bank account id",
                "name": "bank_account_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Bank deposit id",
                "name": "deposit_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Deposit date",
                "name": "deposit_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Lockbox, branch, remote deposit, merchant payout, cash, or other channel",
                "name": "deposit_channel",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Number of deposit items",
                "name": "item_count",
                "tests": [],
                "type": "integer"
              },
              {
                "description": "Deposit total",
                "name": "total_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Bank reference number",
                "name": "bank_reference",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Deposit advice observations for deposit batches, item counts, channels, and bank-posted totals.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Bank deposit advices",
              "spec_name": "bank_deposit_advices"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "financial_institution_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"deposit_advice_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Bank account id\",\n      \"name\": \"bank_account_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Bank deposit id\",\n      \"name\": \"deposit_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Deposit date\",\n      \"name\": \"deposit_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Lockbox, branch, remote deposit, merchant payout, cash, or other channel\",\n      \"name\": \"deposit_channel\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Number of deposit items\",\n      \"name\": \"item_count\",\n      \"tests\": [],\n      \"type\": \"integer\"\n    },\n    {\n      \"description\": \"Deposit total\",\n      \"name\": \"total_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Bank reference number\",\n      \"name\": \"bank_reference\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Deposit advice observations for deposit batches, item counts, channels, and bank-posted totals.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Bank deposit advices\",\n    \"spec_name\": \"bank_deposit_advices\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"financial_institution_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "financial_institution",
            "treasury"
          ]
        },
        {
          "specName": "bank_check_clearing_observations",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "check_clearing_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Bank account id",
                "name": "bank_account_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Hashed or tokenized check number",
                "name": "check_number_hash",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Paid or decision date",
                "name": "paid_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Original issue date when provided",
                "name": "issue_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Paid amount",
                "name": "paid_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed or tokenized payee name",
                "name": "payee_name_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Paid, voided, stopped, exception, stale, or other status",
                "name": "clearing_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Positive-pay or clearing exception reason",
                "name": "exception_reason",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Paid, voided, stopped, stale, or exception check observations from bank clearing and positive-pay decision files.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Bank check clearing observations",
              "spec_name": "bank_check_clearing_observations"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "financial_institution_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"check_clearing_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Bank account id\",\n      \"name\": \"bank_account_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed or tokenized check number\",\n      \"name\": \"check_number_hash\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Paid or decision date\",\n      \"name\": \"paid_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Original issue date when provided\",\n      \"name\": \"issue_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Paid amount\",\n      \"name\": \"paid_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed or tokenized payee name\",\n      \"name\": \"payee_name_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Paid, voided, stopped, exception, stale, or other status\",\n      \"name\": \"clearing_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Positive-pay or clearing exception reason\",\n      \"name\": \"exception_reason\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Paid, voided, stopped, stale, or exception check observations from bank clearing and positive-pay decision files.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Bank check clearing observations\",\n    \"spec_name\": \"bank_check_clearing_observations\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"financial_institution_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "financial_institution",
            "treasury"
          ]
        },
        {
          "specName": "bank_positive_pay_issue_commitments",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "positive_pay_commitment_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "bank_account_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Hashed or tokenized check number",
                "name": "check_number_hash",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Check issue date",
                "name": "issue_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed or tokenized payee name",
                "name": "payee_name_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Check amount",
                "name": "amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Whether the packet voids a previously issued check",
                "name": "void_flag",
                "tests": [],
                "type": "boolean"
              },
              {
                "description": "AP, payroll, or ERP source payment id",
                "name": "source_payment_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Outbound file idempotency key",
                "name": "idempotency_key",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed positive-pay issue, void, and stale-check packets before outbound bank file delivery.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Bank positive pay issue commitments",
              "spec_name": "bank_positive_pay_issue_commitments",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "financial_institution_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"positive_pay_commitment_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"bank_account_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed or tokenized check number\",\n      \"name\": \"check_number_hash\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Check issue date\",\n      \"name\": \"issue_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed or tokenized payee name\",\n      \"name\": \"payee_name_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Check amount\",\n      \"name\": \"amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Whether the packet voids a previously issued check\",\n      \"name\": \"void_flag\",\n      \"tests\": [],\n      \"type\": \"boolean\"\n    },\n    {\n      \"description\": \"AP, payroll, or ERP source payment id\",\n      \"name\": \"source_payment_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Outbound file idempotency key\",\n      \"name\": \"idempotency_key\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed positive-pay issue, void, and stale-check packets before outbound bank file delivery.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Bank positive pay issue commitments\",\n    \"spec_name\": \"bank_positive_pay_issue_commitments\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"financial_institution_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "financial_institution",
            "treasury"
          ]
        },
        {
          "specName": "bank_ach_payment_commitments",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "ach_payment_commitment_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "bank_account_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Payment batch id",
                "name": "payment_batch_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "ACH standard entry class code",
                "name": "entry_class_code",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed or tokenized receiver name",
                "name": "receiver_name_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Tokenized receiver account reference",
                "name": "receiver_account_token",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Tokenized receiver routing reference",
                "name": "receiver_routing_token",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Debit or credit indicator",
                "name": "debit_credit",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Payment amount",
                "name": "amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Requested effective entry date",
                "name": "effective_entry_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language payment purpose",
                "name": "payment_purpose",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Outbound file idempotency key",
                "name": "idempotency_key",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed ACH payment batches before outbound bank file delivery.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Bank ACH payment commitments",
              "spec_name": "bank_ach_payment_commitments",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "financial_institution_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"ach_payment_commitment_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"bank_account_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Payment batch id\",\n      \"name\": \"payment_batch_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"ACH standard entry class code\",\n      \"name\": \"entry_class_code\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed or tokenized receiver name\",\n      \"name\": \"receiver_name_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Tokenized receiver account reference\",\n      \"name\": \"receiver_account_token\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Tokenized receiver routing reference\",\n      \"name\": \"receiver_routing_token\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Debit or credit indicator\",\n      \"name\": \"debit_credit\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Payment amount\",\n      \"name\": \"amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested effective entry date\",\n      \"name\": \"effective_entry_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language payment purpose\",\n      \"name\": \"payment_purpose\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Outbound file idempotency key\",\n      \"name\": \"idempotency_key\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed ACH payment batches before outbound bank file delivery.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Bank ACH payment commitments\",\n    \"spec_name\": \"bank_ach_payment_commitments\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"financial_institution_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "financial_institution",
            "treasury"
          ]
        },
        {
          "specName": "bank_ach_return_noc_observations",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "ach_return_noc_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Originating bank account id",
                "name": "bank_account_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Original payment batch id",
                "name": "payment_batch_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Original ACH trace number",
                "name": "original_trace_number",
                "tests": [],
                "type": "string"
              },
              {
                "description": "ACH return code",
                "name": "return_code",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Notice of change code",
                "name": "noc_code",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Bank receipt timestamp",
                "name": "received_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Original effective entry date",
                "name": "effective_entry_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Returned or corrected amount",
                "name": "amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Hashed or tokenized receiver name",
                "name": "receiver_name_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Summary of changed account, routing, name, or transaction detail",
                "name": "correction_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "ACH return and notice-of-change observations for rejected, corrected, or changed ACH entries.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Bank ACH return and NOC observations",
              "spec_name": "bank_ach_return_noc_observations"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "financial_institution_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"ach_return_noc_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Originating bank account id\",\n      \"name\": \"bank_account_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Original payment batch id\",\n      \"name\": \"payment_batch_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Original ACH trace number\",\n      \"name\": \"original_trace_number\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"ACH return code\",\n      \"name\": \"return_code\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Notice of change code\",\n      \"name\": \"noc_code\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Bank receipt timestamp\",\n      \"name\": \"received_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Original effective entry date\",\n      \"name\": \"effective_entry_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Returned or corrected amount\",\n      \"name\": \"amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed or tokenized receiver name\",\n      \"name\": \"receiver_name_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Summary of changed account, routing, name, or transaction detail\",\n      \"name\": \"correction_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"ACH return and notice-of-change observations for rejected, corrected, or changed ACH entries.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Bank ACH return and NOC observations\",\n    \"spec_name\": \"bank_ach_return_noc_observations\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"financial_institution_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "financial_institution",
            "treasury"
          ]
        },
        {
          "specName": "bank_wire_payment_commitments",
          "specConfig": {
            "column_config": [
              {
                "description": "Airlock commitment id",
                "name": "wire_payment_commitment_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the proposal was prepared",
                "name": "prepared_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Person or agent that prepared the proposal",
                "name": "prepared_by",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system target record id",
                "name": "bank_account_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Requested outbound action",
                "name": "action_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Review status before outbound sync",
                "name": "approval_status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Hashed or tokenized beneficiary name",
                "name": "beneficiary_name_hash",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Tokenized beneficiary account reference",
                "name": "beneficiary_account_token",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Tokenized beneficiary bank identifier",
                "name": "beneficiary_bank_identifier_token",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Wire amount",
                "name": "amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Requested execution date",
                "name": "requested_execution_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language payment purpose",
                "name": "payment_purpose",
                "tests": [],
                "type": "string"
              },
              {
                "description": "AP, payroll, treasury, or ERP source payment id",
                "name": "source_payment_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Outbound instruction idempotency key",
                "name": "idempotency_key",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language summary of the intended change",
                "name": "expected_effect_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Observation or reconciliation evidence behind the proposal.",
                "name": "source_evidence",
                "tests": [],
                "type": "variant"
              },
              {
                "description": "Outbound provider API payload or payload fragment.",
                "name": "api_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Governed wire payment packets before outbound bank portal, API, or file delivery.",
              "file_workflow": true,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Bank wire payment commitments",
              "spec_name": "bank_wire_payment_commitments",
              "workflow_steps": [
                {
                  "allow_delete": true,
                  "allow_overwrite": true,
                  "can_user_advance": true,
                  "can_user_elevate": false,
                  "description": "Draft proposal",
                  "is_initial": true,
                  "owner_can_manage_files": true,
                  "parent_step_name": null,
                  "require_comment": false,
                  "step_name": "Draft",
                  "step_order": 1,
                  "user_can_manage_files": true
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Submitted for review",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Draft",
                  "require_comment": true,
                  "step_name": "Submitted",
                  "step_order": 2,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Accepted for outbound sync",
                  "is_initial": false,
                  "owner_can_manage_files": true,
                  "parent_step_name": "Submitted",
                  "require_comment": true,
                  "step_name": "Accepted",
                  "step_order": 3,
                  "user_can_manage_files": false
                },
                {
                  "allow_delete": false,
                  "allow_overwrite": false,
                  "can_user_advance": false,
                  "can_user_elevate": false,
                  "description": "Sent to the external system",
                  "is_initial": false,
                  "owner_can_manage_files": false,
                  "parent_step_name": "Accepted",
                  "require_comment": true,
                  "step_name": "Sent",
                  "step_order": 4,
                  "user_can_manage_files": false
                }
              ]
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "financial_institution_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Airlock commitment id\",\n      \"name\": \"wire_payment_commitment_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the proposal was prepared\",\n      \"name\": \"prepared_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Person or agent that prepared the proposal\",\n      \"name\": \"prepared_by\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system target record id\",\n      \"name\": \"bank_account_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested outbound action\",\n      \"name\": \"action_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Review status before outbound sync\",\n      \"name\": \"approval_status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Hashed or tokenized beneficiary name\",\n      \"name\": \"beneficiary_name_hash\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Tokenized beneficiary account reference\",\n      \"name\": \"beneficiary_account_token\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Tokenized beneficiary bank identifier\",\n      \"name\": \"beneficiary_bank_identifier_token\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Wire amount\",\n      \"name\": \"amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Requested execution date\",\n      \"name\": \"requested_execution_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language payment purpose\",\n      \"name\": \"payment_purpose\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"AP, payroll, treasury, or ERP source payment id\",\n      \"name\": \"source_payment_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Outbound instruction idempotency key\",\n      \"name\": \"idempotency_key\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language summary of the intended change\",\n      \"name\": \"expected_effect_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Observation or reconciliation evidence behind the proposal.\",\n      \"name\": \"source_evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    },\n    {\n      \"description\": \"Outbound provider API payload or payload fragment.\",\n      \"name\": \"api_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Governed wire payment packets before outbound bank portal, API, or file delivery.\",\n    \"file_workflow\": true,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Bank wire payment commitments\",\n    \"spec_name\": \"bank_wire_payment_commitments\",\n    \"workflow_steps\": [\n      {\n        \"allow_delete\": true,\n        \"allow_overwrite\": true,\n        \"can_user_advance\": true,\n        \"can_user_elevate\": false,\n        \"description\": \"Draft proposal\",\n        \"is_initial\": true,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": null,\n        \"require_comment\": false,\n        \"step_name\": \"Draft\",\n        \"step_order\": 1,\n        \"user_can_manage_files\": true\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Submitted for review\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Draft\",\n        \"require_comment\": true,\n        \"step_name\": \"Submitted\",\n        \"step_order\": 2,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Accepted for outbound sync\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": true,\n        \"parent_step_name\": \"Submitted\",\n        \"require_comment\": true,\n        \"step_name\": \"Accepted\",\n        \"step_order\": 3,\n        \"user_can_manage_files\": false\n      },\n      {\n        \"allow_delete\": false,\n        \"allow_overwrite\": false,\n        \"can_user_advance\": false,\n        \"can_user_elevate\": false,\n        \"description\": \"Sent to the external system\",\n        \"is_initial\": false,\n        \"owner_can_manage_files\": false,\n        \"parent_step_name\": \"Accepted\",\n        \"require_comment\": true,\n        \"step_name\": \"Sent\",\n        \"step_order\": 4,\n        \"user_can_manage_files\": false\n      }\n    ]\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"financial_institution_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "financial_institution",
            "treasury"
          ]
        },
        {
          "specName": "bank_wire_status_observations",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "wire_status_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Airlock wire payment commitment id",
                "name": "wire_payment_commitment_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Originating bank account id",
                "name": "bank_account_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Customer wire reference",
                "name": "wire_reference",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Bank wire reference",
                "name": "bank_reference",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Wire status",
                "name": "status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Wire status timestamp",
                "name": "status_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Wire amount",
                "name": "amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Reject, repair, or cancellation reason code",
                "name": "reason_code",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language reason summary",
                "name": "reason_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Wire status observations for accepted, rejected, repaired, released, confirmed, or cancelled payments.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Bank wire status observations",
              "spec_name": "bank_wire_status_observations"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "financial_institution_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"wire_status_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Airlock wire payment commitment id\",\n      \"name\": \"wire_payment_commitment_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Originating bank account id\",\n      \"name\": \"bank_account_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Customer wire reference\",\n      \"name\": \"wire_reference\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Bank wire reference\",\n      \"name\": \"bank_reference\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Wire status\",\n      \"name\": \"status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Wire status timestamp\",\n      \"name\": \"status_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Wire amount\",\n      \"name\": \"amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Reject, repair, or cancellation reason code\",\n      \"name\": \"reason_code\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language reason summary\",\n      \"name\": \"reason_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Wire status observations for accepted, rejected, repaired, released, confirmed, or cancelled payments.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Bank wire status observations\",\n    \"spec_name\": \"bank_wire_status_observations\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"financial_institution_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "financial_institution",
            "treasury"
          ]
        },
        {
          "specName": "bank_account_analysis_fees",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "account_analysis_fee_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Bank account id",
                "name": "bank_account_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Fee statement month",
                "name": "statement_month",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Bank service code",
                "name": "service_code",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Bank service description",
                "name": "service_description",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Service unit count",
                "name": "unit_count",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Service unit price",
                "name": "unit_price",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Fee amount",
                "name": "fee_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Waived or offset amount",
                "name": "waived_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Fee review status",
                "name": "review_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Account analysis fee observations for treasury service charges, volumes, earnings credits, and fee review.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Bank account analysis fees",
              "spec_name": "bank_account_analysis_fees"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "financial_institution_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"account_analysis_fee_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Bank account id\",\n      \"name\": \"bank_account_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Fee statement month\",\n      \"name\": \"statement_month\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Bank service code\",\n      \"name\": \"service_code\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Bank service description\",\n      \"name\": \"service_description\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Service unit count\",\n      \"name\": \"unit_count\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Service unit price\",\n      \"name\": \"unit_price\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Fee amount\",\n      \"name\": \"fee_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Waived or offset amount\",\n      \"name\": \"waived_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Fee review status\",\n      \"name\": \"review_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Account analysis fee observations for treasury service charges, volumes, earnings credits, and fee review.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Bank account analysis fees\",\n    \"spec_name\": \"bank_account_analysis_fees\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"financial_institution_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "financial_institution",
            "treasury"
          ]
        },
        {
          "specName": "treasury_cash_forecast_snapshots",
          "specConfig": {
            "column_config": [
              {
                "description": "External system record id",
                "name": "cash_forecast_snapshot_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the observation was captured",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "External system update timestamp",
                "name": "source_updated_at",
                "tests": [],
                "type": "string"
              },
              {
                "description": "External system status",
                "name": "source_status",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Forecast run id",
                "name": "forecast_run_id",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Forecast date",
                "name": "forecast_date",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Bank account id",
                "name": "bank_account_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Business unit",
                "name": "business_unit",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Opening cash balance",
                "name": "opening_cash",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Expected cash inflows",
                "name": "expected_inflows",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Expected cash outflows",
                "name": "expected_outflows",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Forecast closing cash",
                "name": "closing_cash",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "High, medium, low, or other confidence label",
                "name": "confidence",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language forecast assumption summary",
                "name": "assumption_summary",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Selected provider payload fields retained for audit and future promotion.",
                "name": "raw_payload",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Cash forecast snapshots built from bank balances, open AR/AP, payroll, debt, tax, and planned transfer assumptions.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Treasury cash forecast snapshots",
              "spec_name": "treasury_cash_forecast_snapshots"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "treasury_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"External system record id\",\n      \"name\": \"cash_forecast_snapshot_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the observation was captured\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system update timestamp\",\n      \"name\": \"source_updated_at\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"External system status\",\n      \"name\": \"source_status\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Forecast run id\",\n      \"name\": \"forecast_run_id\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Forecast date\",\n      \"name\": \"forecast_date\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Bank account id\",\n      \"name\": \"bank_account_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Business unit\",\n      \"name\": \"business_unit\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Opening cash balance\",\n      \"name\": \"opening_cash\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Expected cash inflows\",\n      \"name\": \"expected_inflows\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Expected cash outflows\",\n      \"name\": \"expected_outflows\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Forecast closing cash\",\n      \"name\": \"closing_cash\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"High, medium, low, or other confidence label\",\n      \"name\": \"confidence\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language forecast assumption summary\",\n      \"name\": \"assumption_summary\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Selected provider payload fields retained for audit and future promotion.\",\n      \"name\": \"raw_payload\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Cash forecast snapshots built from bank balances, open AR/AP, payroll, debt, tax, and planned transfer assumptions.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Treasury cash forecast snapshots\",\n    \"spec_name\": \"treasury_cash_forecast_snapshots\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"treasury_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "treasury",
            "financial_institution"
          ]
        },
        {
          "specName": "treasury_bank_reconciliation_findings",
          "specConfig": {
            "column_config": [
              {
                "description": "Reconciliation finding id",
                "name": "bank_reconciliation_finding_id",
                "tests": [
                  "not_null",
                  "unique"
                ],
                "type": "string"
              },
              {
                "description": "When the finding was produced",
                "name": "observed_at",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "First compared system",
                "name": "left_system",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "First compared spec",
                "name": "left_spec",
                "tests": [],
                "type": "string"
              },
              {
                "description": "First compared record id",
                "name": "left_record_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Second compared system",
                "name": "right_system",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Second compared spec",
                "name": "right_spec",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Second compared record id",
                "name": "right_record_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Identifier used for matching, such as sku, email_hash, product_url_hash, or order_number",
                "name": "match_key_type",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Matched identifier value or token",
                "name": "match_key_value",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Mismatch type",
                "name": "discrepancy_type",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Business severity",
                "name": "severity",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Plain-language business impact",
                "name": "business_impact",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Role or team that should review the finding",
                "name": "recommended_owner",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Suggested next action",
                "name": "recommended_action",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Suggested outbound commitment spec for an accepted fix",
                "name": "suggested_commitment_spec",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Finding status",
                "name": "status",
                "tests": [
                  "not_null"
                ],
                "type": "string"
              },
              {
                "description": "Reconciliation run id",
                "name": "run_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Bank account id",
                "name": "bank_account_id",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Statement date",
                "name": "statement_date",
                "tests": [],
                "type": "string"
              },
              {
                "description": "ERP or accounting system compared to the bank",
                "name": "gl_system",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Bank-side amount",
                "name": "bank_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Book-side amount",
                "name": "book_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Difference between bank and book amounts",
                "name": "difference_amount",
                "tests": [],
                "type": "number"
              },
              {
                "description": "Currency",
                "name": "currency",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Aging bucket for unresolved difference",
                "name": "aging_bucket",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Known reason the finding is still open",
                "name": "unresolved_reason",
                "tests": [],
                "type": "string"
              },
              {
                "description": "Compared values, source file references, and agent evidence for the finding.",
                "name": "evidence",
                "tests": [],
                "type": "variant"
              }
            ],
            "core_config": {
              "current_mode": "latest",
              "description": "Treasury reconciliation findings comparing bank balances, bank transactions, ERP cash, processor payouts, and payment commitments.",
              "file_workflow": false,
              "is_archived": false,
              "is_locked": false,
              "is_published": true,
              "materialize_as_table": true,
              "owner_role": "app_admin",
              "spec_alias": "Treasury bank reconciliation findings",
              "spec_name": "treasury_bank_reconciliation_findings"
            },
            "file_rules": {
              "file_format": {
                "cell_range": null,
                "encoding": "UTF8",
                "escape_unenclosed_field": "\\",
                "field_delimiter": ",",
                "field_optionally_enclosed_by": "\"",
                "file_type": "csv",
                "parse_header": true,
                "record_delimiter": "\n",
                "save_header": true
              },
              "filename_rules": {
                "enforce_filename_pattern": false,
                "filename_pattern": null,
                "sample_filenames": null
              }
            },
            "guest_access": {
              "enabled": true,
              "guest_roles": [
                {
                  "access_level": "full_access",
                  "role_name": "treasury_agent"
                }
              ],
              "isolated_access_level": "full_access",
              "isolated_directories_enabled": true,
              "isolated_directories_per_user": true,
              "public_folder": {
                "enabled": false,
                "subfolders": {
                  "append_access": {
                    "enabled": false
                  },
                  "full_access": {
                    "enabled": false
                  },
                  "read_access": {
                    "enabled": false
                  }
                }
              }
            },
            "sample_data": {
              "sample_data_acknowledged": true,
              "sample_rows": []
            }
          },
          "createSpecSql": "CALL airlock.admin.create_spec(PARSE_JSON($${\n  \"column_config\": [\n    {\n      \"description\": \"Reconciliation finding id\",\n      \"name\": \"bank_reconciliation_finding_id\",\n      \"tests\": [\n        \"not_null\",\n        \"unique\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"When the finding was produced\",\n      \"name\": \"observed_at\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"First compared system\",\n      \"name\": \"left_system\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"First compared spec\",\n      \"name\": \"left_spec\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"First compared record id\",\n      \"name\": \"left_record_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Second compared system\",\n      \"name\": \"right_system\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Second compared spec\",\n      \"name\": \"right_spec\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Second compared record id\",\n      \"name\": \"right_record_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Identifier used for matching, such as sku, email_hash, product_url_hash, or order_number\",\n      \"name\": \"match_key_type\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Matched identifier value or token\",\n      \"name\": \"match_key_value\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Mismatch type\",\n      \"name\": \"discrepancy_type\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Business severity\",\n      \"name\": \"severity\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Plain-language business impact\",\n      \"name\": \"business_impact\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Role or team that should review the finding\",\n      \"name\": \"recommended_owner\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Suggested next action\",\n      \"name\": \"recommended_action\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Suggested outbound commitment spec for an accepted fix\",\n      \"name\": \"suggested_commitment_spec\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Finding status\",\n      \"name\": \"status\",\n      \"tests\": [\n        \"not_null\"\n      ],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Reconciliation run id\",\n      \"name\": \"run_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Bank account id\",\n      \"name\": \"bank_account_id\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Statement date\",\n      \"name\": \"statement_date\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"ERP or accounting system compared to the bank\",\n      \"name\": \"gl_system\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Bank-side amount\",\n      \"name\": \"bank_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Book-side amount\",\n      \"name\": \"book_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Difference between bank and book amounts\",\n      \"name\": \"difference_amount\",\n      \"tests\": [],\n      \"type\": \"number\"\n    },\n    {\n      \"description\": \"Currency\",\n      \"name\": \"currency\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Aging bucket for unresolved difference\",\n      \"name\": \"aging_bucket\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Known reason the finding is still open\",\n      \"name\": \"unresolved_reason\",\n      \"tests\": [],\n      \"type\": \"string\"\n    },\n    {\n      \"description\": \"Compared values, source file references, and agent evidence for the finding.\",\n      \"name\": \"evidence\",\n      \"tests\": [],\n      \"type\": \"variant\"\n    }\n  ],\n  \"core_config\": {\n    \"current_mode\": \"latest\",\n    \"description\": \"Treasury reconciliation findings comparing bank balances, bank transactions, ERP cash, processor payouts, and payment commitments.\",\n    \"file_workflow\": false,\n    \"is_archived\": false,\n    \"is_locked\": false,\n    \"is_published\": true,\n    \"materialize_as_table\": true,\n    \"owner_role\": \"app_admin\",\n    \"spec_alias\": \"Treasury bank reconciliation findings\",\n    \"spec_name\": \"treasury_bank_reconciliation_findings\"\n  },\n  \"file_rules\": {\n    \"file_format\": {\n      \"cell_range\": null,\n      \"encoding\": \"UTF8\",\n      \"escape_unenclosed_field\": \"\\\\\",\n      \"field_delimiter\": \",\",\n      \"field_optionally_enclosed_by\": \"\\\"\",\n      \"file_type\": \"csv\",\n      \"parse_header\": true,\n      \"record_delimiter\": \"\\n\",\n      \"save_header\": true\n    },\n    \"filename_rules\": {\n      \"enforce_filename_pattern\": false,\n      \"filename_pattern\": null,\n      \"sample_filenames\": null\n    }\n  },\n  \"guest_access\": {\n    \"enabled\": true,\n    \"guest_roles\": [\n      {\n        \"access_level\": \"full_access\",\n        \"role_name\": \"treasury_agent\"\n      }\n    ],\n    \"isolated_access_level\": \"full_access\",\n    \"isolated_directories_enabled\": true,\n    \"isolated_directories_per_user\": true,\n    \"public_folder\": {\n      \"enabled\": false,\n      \"subfolders\": {\n        \"append_access\": {\n          \"enabled\": false\n        },\n        \"full_access\": {\n          \"enabled\": false\n        },\n        \"read_access\": {\n          \"enabled\": false\n        }\n      }\n    }\n  },\n  \"sample_data\": {\n    \"sample_data_acknowledged\": true,\n    \"sample_rows\": []\n  }\n}$$));",
          "systems": [
            "treasury",
            "financial_institution"
          ]
        }
      ]
    }
  ]
}
