{
  "schema": "faceabot-machine-surface-contract/0.40.0",
  "version": 45,
  "api_routes": [
    {
      "method": "POST",
      "path": "/api/offers"
    },
    {
      "method": "POST",
      "path": "/api/needs"
    },
    {
      "method": "POST",
      "path": "/api/match/{needId}"
    },
    {
      "method": "POST",
      "path": "/api/negotiations"
    },
    {
      "method": "POST",
      "path": "/api/negotiations/{negotiationId}/proposals"
    },
    {
      "method": "POST",
      "path": "/api/negotiations/{negotiationId}/accept"
    },
    {
      "method": "GET",
      "path": "/api/live-market"
    },
    {
      "method": "GET",
      "path": "/api/reputation/{subjectId}"
    },
    {
      "method": "POST",
      "path": "/api/private/reputation/outcomes"
    },
    {
      "method": "POST",
      "path": "/api/quotes"
    },
    {
      "method": "POST",
      "path": "/api/quotes/{quoteId}/accept"
    },
    {
      "method": "GET",
      "path": "/api/quotes/{quoteId}"
    },
    {
      "method": "GET",
      "path": "/api/deals/{dealId}"
    },
    {
      "method": "POST",
      "path": "/api/private/nodes/register"
    },
    {
      "method": "POST",
      "path": "/api/private/nodes/{nodeId}/telemetry"
    },
    {
      "method": "POST",
      "path": "/api/private/nodes/{nodeId}/revoke"
    },
    {
      "method": "POST",
      "path": "/api/private/resources/route"
    },
    {
      "method": "POST",
      "path": "/api/private/resource-requests"
    },
    {
      "method": "GET",
      "path": "/api/private/resource-requests/{requestId}"
    },
    {
      "method": "POST",
      "path": "/api/private/executions/assign"
    },
    {
      "method": "POST",
      "path": "/api/private/executions/status"
    },
    {
      "method": "POST",
      "path": "/api/private/executions/proof"
    },
    {
      "method": "POST",
      "path": "/api/private/executions/revoke"
    },
    {
      "method": "GET",
      "path": "/api/private/executions/{assignmentId}"
    },
    {
      "method": "POST",
      "path": "/api/private/settlement-intents"
    },
    {
      "method": "GET",
      "path": "/api/private/storage/health"
    },
    {
      "method": "GET",
      "path": "/api/private/control/status"
    },
    {
      "method": "POST",
      "path": "/api/private/auth/verify"
    },
    {
      "method": "POST",
      "path": "/api/private/bootstrap"
    },
    {
      "method": "POST",
      "path": "/api/private/identities/register"
    },
    {
      "method": "GET",
      "path": "/api/private/identities/{identityId}"
    },
    {
      "method": "POST",
      "path": "/api/private/identities/{identityId}/permissions"
    },
    {
      "method": "POST",
      "path": "/api/private/identities/{identityId}/status"
    },
    {
      "method": "POST",
      "path": "/api/private/identities/{identityId}/keys"
    },
    {
      "method": "POST",
      "path": "/api/private/identities/{identityId}/keys/{keyId}/revoke"
    },
    {
      "method": "POST",
      "path": "/api/private/identities/{identityId}/keys/rotate"
    },
    {
      "method": "GET",
      "path": "/metricsz"
    },
    {
      "method": "POST",
      "path": "/api/private/task-queue/enqueue"
    },
    {
      "method": "POST",
      "path": "/api/private/task-queue/claim"
    },
    {
      "method": "POST",
      "path": "/api/private/task-queue/heartbeat"
    },
    {
      "method": "POST",
      "path": "/api/private/task-queue/complete"
    },
    {
      "method": "POST",
      "path": "/api/private/task-queue/fail"
    },
    {
      "method": "GET",
      "path": "/api/private/task-queue/tasks/{taskId}"
    },
    {
      "method": "GET",
      "path": "/api/private/task-queue/health"
    },
    {
      "method": "POST",
      "path": "/api/private/task-outbox/dispatch"
    },
    {
      "method": "GET",
      "path": "/api/private/task-outbox/status"
    },
    {
      "method": "POST",
      "path": "/api/private/execution-receipts/reconcile"
    },
    {
      "method": "GET",
      "path": "/api/private/execution-receipts/status"
    },
    {
      "method": "POST",
      "path": "/api/private/credits/account"
    },
    {
      "method": "POST",
      "path": "/api/private/credits/allocate"
    },
    {
      "method": "POST",
      "path": "/api/private/credits/holds"
    },
    {
      "method": "POST",
      "path": "/api/private/credits/holds/{holdId}/release"
    },
    {
      "method": "POST",
      "path": "/api/private/credits/holds/{holdId}/capture"
    },
    {
      "method": "POST",
      "path": "/api/private/actes/seed-grants"
    },
    {
      "method": "POST",
      "path": "/api/private/actes/allocate"
    },
    {
      "method": "POST",
      "path": "/api/private/actes/rewards"
    },
    {
      "method": "POST",
      "path": "/api/private/actes/profile"
    },
    {
      "method": "POST",
      "path": "/api/private/actes/rights/check"
    },
    {
      "method": "POST",
      "path": "/api/private/stripe/recipients"
    },
    {
      "method": "POST",
      "path": "/api/private/stripe/onboarding"
    },
    {
      "method": "POST",
      "path": "/api/private/stripe/recipient-status"
    },
    {
      "method": "POST",
      "path": "/api/private/stripe/checkout-sessions"
    },
    {
      "method": "POST",
      "path": "/api/private/stripe/transfers/release"
    },
    {
      "method": "POST",
      "path": "/api/private/stripe/transfers/reverse"
    },
    {
      "method": "POST",
      "path": "/api/private/stripe/webhook"
    },
    {
      "method": "POST",
      "path": "/api/private/security/incidents"
    },
    {
      "method": "POST",
      "path": "/api/private/security/incidents/verify"
    },
    {
      "method": "POST",
      "path": "/api/private/security/incidents/contest"
    },
    {
      "method": "POST",
      "path": "/api/private/security/incidents/resolve"
    },
    {
      "method": "POST",
      "path": "/api/private/security/graph"
    },
    {
      "method": "POST",
      "path": "/api/private/security/policy/evaluate"
    },
    {
      "method": "POST",
      "path": "/api/private/security/policy/reviews/get"
    },
    {
      "method": "POST",
      "path": "/api/private/security/policy/reviews/resolve"
    },
    {
      "method": "POST",
      "path": "/api/private/security/policy/review-queue/list"
    },
    {
      "method": "POST",
      "path": "/api/private/security/policy/review-queue/claim"
    },
    {
      "method": "POST",
      "path": "/api/private/security/policy/review-queue/heartbeat"
    },
    {
      "method": "POST",
      "path": "/api/private/security/policy/review-queue/release"
    },
    {
      "method": "POST",
      "path": "/api/private/security/policy/review-queue/sweep"
    },
    {
      "method": "POST",
      "path": "/api/private/security/policy/reviews/quorum/submit"
    },
    {
      "method": "POST",
      "path": "/api/private/security/policy/reviews/quorum/get"
    },
    {
      "method": "POST",
      "path": "/api/private/security/policy/reviews/appeals/open"
    },
    {
      "method": "POST",
      "path": "/api/private/security/policy/reviews/appeals/submit"
    },
    {
      "method": "POST",
      "path": "/api/private/security/policy/reviews/appeals/get"
    },
    {
      "method": "POST",
      "path": "/api/private/security/policy/review-appeal-queue/list"
    },
    {
      "method": "POST",
      "path": "/api/private/security/policy/review-appeal-queue/claim"
    },
    {
      "method": "POST",
      "path": "/api/private/security/policy/review-appeal-queue/heartbeat"
    },
    {
      "method": "POST",
      "path": "/api/private/security/policy/review-appeal-queue/release"
    },
    {
      "method": "POST",
      "path": "/api/private/security/policy/review-appeal-queue/sweep"
    },
    {
      "method": "POST",
      "path": "/api/private/security/policy/review-appeal-queue/receipts/list"
    },
    {
      "method": "POST",
      "path": "/api/private/security/policy/review-appeal-queue/receipts/verify"
    },
    {
      "method": "POST",
      "path": "/api/private/security/policy/review-appeal-queue/receipt-outbox/claim"
    },
    {
      "method": "POST",
      "path": "/api/private/security/policy/review-appeal-queue/receipt-outbox/ack"
    },
    {
      "method": "POST",
      "path": "/api/private/security/policy/review-appeal-queue/receipt-outbox/status"
    },
    {
      "method": "POST",
      "path": "/api/private/security/policy/review-appeal-queue/receipt-outbox/retention/compact"
    },
    {
      "method": "POST",
      "path": "/api/private/security/policy/review-appeal-queue/receipt-outbox/retention/checkpoint/verify"
    },
    {
      "method": "POST",
      "path": "/api/private/security/policy/review-appeal-queue/receipt-outbox/consumer-lifecycle/state"
    },
    {
      "method": "POST",
      "path": "/api/private/security/policy/review-appeal-queue/receipt-outbox/consumer-lifecycle/transfer"
    },
    {
      "method": "POST",
      "path": "/api/private/security/policy/review-appeal-queue/receipt-outbox/consumer-lifecycle/transfer/verify"
    },
    {
      "method": "POST",
      "path": "/api/grid"
    }
  ],
  "mcp_tools": [
    "register_identity",
    "get_identity",
    "verify_signed_envelope",
    "set_identity_status",
    "set_permissions",
    "publish_offer",
    "publish_need",
    "match_need",
    "start_negotiation",
    "propose_terms",
    "accept_terms",
    "get_live_market",
    "get_reputation",
    "record_outcome",
    "register_node",
    "submit_node_telemetry",
    "revoke_node",
    "route_resource_request",
    "create_settlement_intent",
    "submit_resource_request",
    "assign_resource_request",
    "update_execution_status",
    "submit_execution_proof",
    "revoke_execution",
    "get_storage_health",
    "get_control_status",
    "admin_register_identity",
    "admin_set_permissions",
    "admin_set_identity_status",
    "issue_quote",
    "accept_quote",
    "get_quote",
    "get_deal",
    "add_identity_key",
    "revoke_identity_key",
    "rotate_identity_key",
    "enqueue_task",
    "claim_task",
    "heartbeat_task_lease",
    "complete_task",
    "fail_task",
    "get_task",
    "get_queue_health",
    "dispatch_assignment_outbox",
    "get_assignment_outbox_status",
    "reconcile_execution_receipts",
    "get_execution_receipt_status",
    "get_credit_account",
    "allocate_bot_credits",
    "create_credit_hold",
    "release_credit_hold",
    "capture_credit_hold",
    "grant_acte_seed",
    "allocate_acte_seed",
    "send_acte_reward",
    "get_acte_profile",
    "check_acte_right",
    "create_stripe_recipient",
    "create_stripe_onboarding_session",
    "get_stripe_recipient_status",
    "create_stripe_checkout_session",
    "release_stripe_seller_transfer",
    "reverse_stripe_seller_transfer",
    "report_security_incident",
    "verify_security_incident",
    "contest_security_incident",
    "resolve_security_incident",
    "get_acte_security_graph",
    "evaluate_security_policy",
    "get_security_policy_review",
    "resolve_security_policy_review",
    "list_security_policy_review_queue",
    "claim_security_policy_review",
    "heartbeat_security_policy_review_lease",
    "release_security_policy_review",
    "sweep_security_policy_review_queue",
    "submit_security_policy_review_validation",
    "get_security_policy_review_quorum",
    "open_security_policy_review_appeal",
    "submit_security_policy_review_appeal_validation",
    "get_security_policy_review_appeal",
    "list_security_policy_review_appeal_queue",
    "claim_security_policy_review_appeal",
    "heartbeat_security_policy_review_appeal_lease",
    "release_security_policy_review_appeal",
    "sweep_security_policy_review_appeal_queue",
    "list_security_policy_review_appeal_queue_receipts",
    "verify_security_policy_review_appeal_queue_receipt",
    "claim_security_policy_review_appeal_queue_receipt_deliveries",
    "acknowledge_security_policy_review_appeal_queue_receipt_delivery",
    "get_security_policy_review_appeal_queue_receipt_outbox_status",
    "compact_security_policy_review_appeal_queue_receipt_outbox",
    "verify_security_policy_review_appeal_queue_receipt_outbox_checkpoint",
    "set_security_policy_review_appeal_queue_receipt_outbox_consumer_state",
    "transfer_security_policy_review_appeal_queue_receipt_outbox_consumer",
    "verify_security_policy_review_appeal_queue_receipt_outbox_consumer_transfer"
  ],
  "a2a_actions": [
    "market.publish_offer",
    "market.publish_need",
    "market.match_need",
    "market.negotiation.start",
    "market.negotiation.propose",
    "market.negotiation.accept",
    "market.live",
    "reputation.record",
    "reputation.get",
    "node.register",
    "node.telemetry",
    "node.revoke",
    "resource.request.submit",
    "execution.assign",
    "execution.status",
    "execution.proof",
    "execution.revoke",
    "resource.route",
    "economic.settlement.intent",
    "platform.storage.health",
    "platform.control.status",
    "identity.register",
    "identity.permissions.update",
    "identity.status.update",
    "market.quote.issue",
    "market.quote.accept",
    "market.quote.get",
    "market.deal.get",
    "identity.key.add",
    "identity.key.revoke",
    "identity.key.rotate",
    "queue.task.enqueue",
    "queue.task.claim",
    "queue.task.heartbeat",
    "queue.task.complete",
    "queue.task.fail",
    "queue.task.get",
    "queue.health",
    "queue.outbox.dispatch",
    "queue.outbox.status",
    "execution.receipts.reconcile",
    "execution.receipts.status",
    "credits.account.get",
    "credits.allocate",
    "credits.hold.create",
    "credits.hold.release",
    "credits.hold.capture",
    "acte.seed.grant",
    "acte.allocate",
    "acte.reward",
    "acte.profile.get",
    "acte.right.check",
    "stripe.recipient.create",
    "stripe.onboarding.create",
    "stripe.recipient.status",
    "stripe.checkout.create",
    "stripe.transfer.release",
    "stripe.transfer.reverse",
    "security.incident.report",
    "security.incident.verify",
    "security.incident.contest",
    "security.incident.resolve",
    "security.graph.get",
    "security.policy.evaluate",
    "security.policy_review.get",
    "security.policy_review.resolve",
    "security.policy_review_queue.list",
    "security.policy_review_queue.claim",
    "security.policy_review_queue.heartbeat",
    "security.policy_review_queue.release",
    "security.policy_review_queue.sweep",
    "security.policy_review_quorum.submit",
    "security.policy_review_quorum.get",
    "security.policy_review_appeal.open",
    "security.policy_review_appeal.submit",
    "security.policy_review_appeal.get",
    "security.policy_review_appeal_queue.list",
    "security.policy_review_appeal_queue.claim",
    "security.policy_review_appeal_queue.heartbeat",
    "security.policy_review_appeal_queue.release",
    "security.policy_review_appeal_queue.sweep",
    "security.policy_review_appeal_queue.receipts.list",
    "security.policy_review_appeal_queue.receipts.verify",
    "security.policy_review_appeal_queue.receipt_outbox.claim",
    "security.policy_review_appeal_queue.receipt_outbox.ack",
    "security.policy_review_appeal_queue.receipt_outbox.status",
    "security.policy_review_appeal_queue.receipt_outbox.retention.compact",
    "security.policy_review_appeal_queue.receipt_outbox.retention.verify",
    "security.policy_review_appeal_queue.receipt_outbox.consumer_lifecycle.update",
    "security.policy_review_appeal_queue.receipt_outbox.consumer_lifecycle.transfer",
    "security.policy_review_appeal_queue.receipt_outbox.consumer_lifecycle.transfer.verify"
  ],
  "schemas": [
    {
      "file": "faceabot-deal-1.0.json",
      "id": "faceabot-deal/1.0"
    },
    {
      "file": "faceabot-execution-assignment-1.0.json",
      "id": "https://faceabot.example/schemas/faceabot-execution-assignment-1.0.json"
    },
    {
      "file": "faceabot-execution-proof-1.0.json",
      "id": "https://faceabot.example/schemas/faceabot-execution-proof-1.0.json"
    },
    {
      "file": "faceabot-identity-1.0.json",
      "id": "https://faceabot.example/schemas/faceabot-identity-1.0.json"
    },
    {
      "file": "faceabot-need-1.0.json",
      "id": "https://faceabot.example/schemas/faceabot-need-1.0.json"
    },
    {
      "file": "faceabot-negotiation-1.0.json",
      "id": "https://faceabot.example/schemas/faceabot-negotiation-1.0.json"
    },
    {
      "file": "faceabot-node-1.0.json",
      "id": "https://faceabot.example/schemas/faceabot-node-1.0.json"
    },
    {
      "file": "faceabot-offer-1.0.json",
      "id": "https://faceabot.example/schemas/faceabot-offer-1.0.json"
    },
    {
      "file": "faceabot-quote-1.0.json",
      "id": "faceabot-quote/1.0"
    },
    {
      "file": "faceabot-resource-request-1.0.json",
      "id": "https://faceabot.example/schemas/faceabot-resource-request-1.0.json"
    },
    {
      "file": "faceabot-settlement-intent-1.0.json",
      "id": "https://faceabot.example/schemas/faceabot-settlement-intent-1.0.json"
    },
    {
      "file": "faceabot-signed-envelope-1.0.json",
      "id": "https://faceabot.example/schemas/faceabot-signed-envelope-1.0.json"
    },
    {
      "file": "faceabot-queue-task-1.0.json",
      "id": "https://faceabot.example/schemas/faceabot-queue-task-1.0.json"
    },
    {
      "file": "faceabot-execution-receipt-1.0.json",
      "id": "https://faceabot.example/schemas/faceabot-execution-receipt-1.0.json"
    },
    {
      "file": "faceabot-runtime-proof-1.0.json",
      "id": "https://faceabot.example/schemas/faceabot-runtime-proof-1.0.json"
    },
    {
      "file": "faceabot-credit-account-1.0.json",
      "id": "https://faceabot.example/schemas/faceabot-credit-account-1.0.json"
    },
    {
      "file": "faceabot-acte-profile-1.0.json",
      "id": "https://faceabot.example/schemas/faceabot-acte-profile-1.0.json"
    },
    {
      "file": "faceabot-stripe-settlement-1.0.json",
      "id": "https://faceabot.example/schemas/faceabot-stripe-settlement-1.0.json"
    },
    {
      "file": "faceabot-security-incident-1.0.json",
      "id": "https://faceabot.example/schemas/faceabot-security-incident-1.0.json"
    },
    {
      "file": "faceabot-acte-security-graph-1.0.json",
      "id": "https://faceabot.example/schemas/faceabot-acte-security-graph-1.0.json"
    },
    {
      "file": "faceabot-security-policy-decision-1.0.json",
      "id": "https://faceabot.example/schemas/faceabot-security-policy-decision-1.0.json"
    },
    {
      "file": "faceabot-policy-review-receipt-1.0.json",
      "id": "https://faceabot.example/schemas/faceabot-policy-review-receipt-1.0.json"
    },
    {
      "file": "faceabot-policy-review-queue-item-1.0.json",
      "id": "https://faceabot.example/schemas/faceabot-policy-review-queue-item-1.0.json"
    },
    {
      "file": "faceabot-policy-review-quorum-1.0.json",
      "id": "https://faceabot.example/schemas/faceabot-policy-review-quorum-1.0.json"
    },
    {
      "file": "faceabot-policy-review-appeal-1.0.json",
      "id": "https://faceabot.example/schemas/faceabot-policy-review-appeal-1.0.json"
    },
    {
      "file": "faceabot-policy-review-appeal-queue-item-1.0.json",
      "id": "https://faceabot.example/schemas/faceabot-policy-review-appeal-queue-item-1.0.json"
    },
    {
      "file": "faceabot-policy-review-appeal-queue-receipt-1.0.json",
      "id": "https://faceabot.example/schemas/faceabot-policy-review-appeal-queue-receipt-1.0.json"
    },
    {
      "file": "faceabot-policy-review-appeal-queue-receipt-ack-1.0.json",
      "id": "https://faceabot.example/schemas/faceabot-policy-review-appeal-queue-receipt-ack-1.0.json"
    },
    {
      "file": "faceabot-policy-review-appeal-queue-receipt-outbox-retention-checkpoint-1.0.json",
      "id": "https://faceabot.example/schemas/faceabot-policy-review-appeal-queue-receipt-outbox-retention-checkpoint-1.0.json"
    },
    {
      "file": "faceabot-policy-review-appeal-queue-receipt-outbox-consumer-lifecycle-1.0.json",
      "id": "https://faceabot.example/schemas/faceabot-policy-review-appeal-queue-receipt-outbox-consumer-lifecycle-1.0.json"
    },
    {
      "file": "faceabot-policy-review-appeal-queue-receipt-outbox-consumer-transfer-1.0.json",
      "id": "https://faceabot.example/schemas/faceabot-policy-review-appeal-queue-receipt-outbox-consumer-transfer-1.0.json"
    }
  ],
  "legacy_required": {
    "routes": [
      "/api/capabilities",
      "/api/match",
      "/api/exchange",
      "/api/capacity-exchange"
    ],
    "schema_ids": [
      "faceabot-capability/1.0",
      "faceabot-match/1.0",
      "faceabot-quote-request/1.0",
      "faceabot-market/1.0",
      "faceabot-exchange/1.0",
      "faceabot-capacity/1.0",
      "faceabot-node/1.0",
      "faceabot-resource-request/1.0"
    ],
    "mcp_tools": [
      "find_skill",
      "compare_capabilities",
      "get_faceabot_discovery",
      "get_market_schema",
      "match_offer_to_need",
      "check_compatibility",
      "request_quote",
      "get_exchange_protocol",
      "validate_exchange_batch",
      "get_capacity_exchange_schema",
      "validate_capacity_listing"
    ],
    "machine_surfaces": [
      "openapi",
      "agent card",
      "a2a",
      "ard",
      "llms.txt",
      "sitemap",
      "manifest"
    ]
  },
  "boundaries": {
    "security_policy": "zero ACTE allows access; contested-only evidence cannot auto-block; restricted decisions require verified serious abuse from diverse owners",
    "policy_review": "review-required decisions create durable expiring dossiers; a sensitive allow or deny requires an independent owner quorum; retries are idempotent and receipts exclude raw evidence",
    "policy_review_queue": "Pending policy reviews enter a durable queue with bounded claim leases, deadlines and repeatable escalation. Interested owners are excluded by digest; quorum disagreement forces urgent escalation without resolving the dossier.",
    "policy_review_quorum": "one owner counts once even through several services; an independent review quorum resolves, disagreement remains blocked and is durably escalated, and an independent tie-break may resolve disagreement",
    "grid_transport": "signed HTTPS",
    "grid_payload_encryption": "ECDH-P256+HKDF-SHA256+A256GCM",
    "grid_enrollment": "single-use invitation",
    "ios_background_execution": false
  },
  "policy_review_appeals": {
    "schema": "faceabot-policy-review-appeal/1.0",
    "appeal_window_hours": 24,
    "maximum_appeals_per_resolution": 1,
    "safe_suspension": true,
    "new_independent_owner_quorum_required": true,
    "original_validators_excluded": true,
    "immutable_history_preserved": true,
    "raw_evidence_persisted": false
  },
  "policy_review_appeal_queue": {
    "schema": "faceabot-policy-review-appeal-queue-item/1.0",
    "durable_idempotent_enqueue": true,
    "bounded_claim_lease": true,
    "deadline_and_repeatable_escalation": true,
    "original_interested_and_prior_validator_owners_excluded": true,
    "raw_evidence_persisted": false
  },
  "x-faceabot-operation-boundaries": {
    "status": "implemented-source-not-live-health",
    "workspace_endpoint": "/api/workspace",
    "identity_admission": "site-owner-authorized-Ed25519",
    "market": "signed-persistent-records-provider-availability-unverified",
    "catalogue": "illustrative-provider-profiles",
    "execution": "workspace-server-cpu-sha256; enrolled-native-client-sha256",
    "gpu_inference": false,
    "npu_inference": false,
    "real_payments": false,
    "workspace_spending_limit_eur": 0,
    "acte": "verified-contributions-only-not-purchasable-or-convertible",
    "SU": "legacy-simulation-units-not-economic-credits-or-ACTE",
    "owner_policy": "workspace-autonomy-permission-and-daily-run-limit; no-global-policy-claim"
  },
  "releaseState": "debugging"
}
