{
  "format": "command-center-contract-manifest@v1",
  "package": "@dev-mainsequence/command-center-sdk",
  "npmPath": "@dev-mainsequence/command-center-sdk/contracts/manifest.json",
  "schemaDialect": "https://json-schema.org/draft/2020-12/schema",
  "schemas": [
    {
      "contract": "command-center.static_site_iframe@v1",
      "id": "urn:mainsequence:command-center-sdk:schema:static-site-iframe:v1",
      "file": "schemas/static-site-iframe-v1.schema.json",
      "npmPath": "@dev-mainsequence/command-center-sdk/contracts/schemas/static-site-iframe-v1.schema.json",
      "role": "iframe-protocol",
      "typescript": {
        "entrypoint": "@dev-mainsequence/command-center-sdk/embed",
        "type": "StaticSiteIframeMessage"
      },
      "fixtures": {
        "valid": [
          "fixtures/valid/static-site-iframe-v1.ready.json",
          "fixtures/valid/static-site-iframe-v1.initialize.json",
          "fixtures/valid/static-site-iframe-v1.fastapi-credential-request.json",
          "fixtures/valid/static-site-iframe-v1.fastapi-credential-response.json",
          "fixtures/valid/static-site-iframe-v1.fastapi-credential-error.json",
          "fixtures/valid/static-site-iframe-v1.fastapi-runtime-starting.json",
          "fixtures/valid/static-site-iframe-v1.fastapi-websocket-ticket-request.json",
          "fixtures/valid/static-site-iframe-v1.fastapi-websocket-ticket-cancel.json",
          "fixtures/valid/static-site-iframe-v1.fastapi-websocket-ticket-response.json",
          "fixtures/valid/static-site-iframe-v1.fastapi-websocket-invalid-request.json",
          "fixtures/valid/static-site-iframe-v1.fastapi-websocket-access-denied.json",
          "fixtures/valid/static-site-iframe-v1.fastapi-websocket-origin-not-allowed.json",
          "fixtures/valid/static-site-iframe-v1.fastapi-websocket-release-unavailable.json",
          "fixtures/valid/static-site-iframe-v1.fastapi-websocket-temporarily-unavailable.json",
          "fixtures/valid/static-site-iframe-v1.fastapi-websocket-unsupported.json"
        ],
        "invalid": [
          "fixtures/invalid/static-site-iframe-v1.wrong-version.json",
          "fixtures/invalid/static-site-iframe-v1.invalid-target-uid.json",
          "fixtures/invalid/static-site-iframe-v1.missing-token.json",
          "fixtures/invalid/static-site-iframe-v1.unrestricted-user-credential.json",
          "fixtures/invalid/static-site-iframe-v1.unknown-credential-error.json",
          "fixtures/invalid/static-site-iframe-v1.websocket-extra-field.json",
          "fixtures/invalid/static-site-iframe-v1.websocket-invalid-request-id.json",
          "fixtures/invalid/static-site-iframe-v1.websocket-invalid-target-uid.json",
          "fixtures/invalid/static-site-iframe-v1.websocket-invalid-path.json",
          "fixtures/invalid/static-site-iframe-v1.websocket-invalid-url.json",
          "fixtures/invalid/static-site-iframe-v1.websocket-invalid-expiry.json",
          "fixtures/invalid/static-site-iframe-v1.websocket-invalid-subprotocol.json"
        ]
      }
    },
    {
      "contract": "command-center.resource_collection@v1",
      "id": "urn:mainsequence:command-center-sdk:schema:resource-collection:v1",
      "file": "schemas/resource-collection-v1.schema.json",
      "npmPath": "@dev-mainsequence/command-center-sdk/contracts/schemas/resource-collection-v1.schema.json",
      "role": "normalized-adapter-response",
      "typescript": {
        "entrypoint": "@dev-mainsequence/command-center-sdk/resource",
        "type": "ResourceListResult<T>"
      },
      "fixtures": {
        "valid": [
          "fixtures/valid/resource-collection-v1.minimal.json",
          "fixtures/valid/resource-collection-v1.with-controls.json"
        ],
        "invalid": [
          "fixtures/invalid/resource-collection-v1.negative-total.json",
          "fixtures/invalid/resource-collection-v1.select-without-options.json"
        ]
      }
    },
    {
      "contract": "command-center.bulk_action_discovery@v1",
      "id": "urn:mainsequence:command-center-sdk:schema:bulk-action-discovery:v1",
      "file": "schemas/bulk-action-discovery-v1.schema.json",
      "npmPath": "@dev-mainsequence/command-center-sdk/contracts/schemas/bulk-action-discovery-v1.schema.json",
      "role": "backend-response",
      "typescript": {
        "entrypoint": "@dev-mainsequence/command-center-sdk/resource",
        "type": "ResourceBulkActionDiscoveryResponse"
      },
      "fixtures": {
        "valid": [
          "fixtures/valid/bulk-action-discovery-v1.empty.json",
          "fixtures/valid/bulk-action-discovery-v1.archive.json"
        ],
        "invalid": [
          "fixtures/invalid/bulk-action-discovery-v1.unsafe-endpoint.json",
          "fixtures/invalid/bulk-action-discovery-v1.duplicate-selection-mode.json"
        ]
      }
    },
    {
      "contract": "command-center.resource_discovery@v1",
      "id": "urn:mainsequence:command-center-sdk:schema:resource-discovery:v1",
      "file": "schemas/resource-discovery-v1.schema.json",
      "npmPath": "@dev-mainsequence/command-center-sdk/contracts/schemas/resource-discovery-v1.schema.json",
      "role": "backend-response",
      "typescript": {
        "entrypoint": "@dev-mainsequence/command-center-sdk/resource",
        "type": "ResourceDiscoveryResponse"
      },
      "fixtures": {
        "valid": [
          "fixtures/valid/resource-discovery-v1.records.json"
        ],
        "invalid": [
          "fixtures/invalid/resource-discovery-v1.incomplete-generic-column.json",
          "fixtures/invalid/resource-discovery-v1.unsafe-identity.json",
          "fixtures/invalid/resource-discovery-v1.unknown-field.json"
        ]
      }
    },
    {
      "contract": "command-center.bulk_action_execution@v1",
      "id": "urn:mainsequence:command-center-sdk:schema:bulk-action-execution:v1",
      "file": "schemas/bulk-action-execution-v1.schema.json",
      "npmPath": "@dev-mainsequence/command-center-sdk/contracts/schemas/bulk-action-execution-v1.schema.json",
      "role": "backend-request",
      "typescript": {
        "entrypoint": "@dev-mainsequence/command-center-sdk/resource",
        "type": "ResourceBulkActionExecutionPayload<Id>"
      },
      "fixtures": {
        "valid": [
          "fixtures/valid/bulk-action-execution-v1.explicit.json",
          "fixtures/valid/bulk-action-execution-v1.all-matching.json"
        ],
        "invalid": [
          "fixtures/invalid/bulk-action-execution-v1.empty-explicit.json",
          "fixtures/invalid/bulk-action-execution-v1.presentation-filter.json"
        ]
      }
    },
    {
      "contract": "command-center.bulk_action_preflight@v1",
      "id": "urn:mainsequence:command-center-sdk:schema:bulk-action-preflight:v1",
      "file": "schemas/bulk-action-preflight-v1.schema.json",
      "npmPath": "@dev-mainsequence/command-center-sdk/contracts/schemas/bulk-action-preflight-v1.schema.json",
      "role": "backend-response",
      "typescript": {
        "entrypoint": "@dev-mainsequence/command-center-sdk/resource",
        "type": "ResourceBulkActionPreflightResponse"
      },
      "fixtures": {
        "valid": [
          "fixtures/valid/bulk-action-preflight-v1.allowed.json",
          "fixtures/valid/bulk-action-preflight-v1.blocked.json"
        ],
        "invalid": [
          "fixtures/invalid/bulk-action-preflight-v1.missing-allowed.json",
          "fixtures/invalid/bulk-action-preflight-v1.invalid-blockers.json"
        ]
      }
    }
  ]
}
