{
  "schema": 4,
  "name": "PROFESSIONIA",
  "status": "lab",
  "purpose": "Public professional discovery and permission-based interaction for humans and AI systems.",
  "principles": {
    "public_read": true,
    "open_protocols": true,
    "vendor_neutral": true,
    "professional_opt_in_for_actions": true,
    "paid_ranking": false
  },
  "canonical_profiles": {
    "pattern": "https://providhere-lab.pages.dev/pro/{SIREN|SIRET}/{id}",
    "stable_identifier": true,
    "dynamically_rendered": true,
    "indexable": true
  },
  "api": {
    "base": "https://providhere-lab.pages.dev/api/v1/",
    "openapi": "https://providhere-lab.pages.dev/openapi.json",
    "professional": "https://providhere-lab.pages.dev/api/v1/professionals/{SIREN|SIRET}/{id}",
    "actions": "https://providhere-lab.pages.dev/api/v1/professionals/{SIREN|SIRET}/{id}/actions",
    "action_requests": {
      "method": "POST",
      "endpoint": "https://providhere-lab.pages.dev/api/v1/action-requests",
      "authentication": "none",
      "idempotency_header": "Idempotency-Key",
      "effect": "INBOX_ONLY"
    },
    "professional_action_snapshot": true,
    "reservations": {
      "endpoint": "https://providhere-lab.pages.dev/api/v1/reservations",
      "prepare_endpoint": "https://providhere-lab.pages.dev/api/v1/reservations/prepare",
      "read_method": "GET",
      "write_method": "POST",
      "human_booking_requires_action": false,
      "agent_booking_requires_action": true,
      "effects": {
        "REQUEST": "BOOKING_REQUEST",
        "DIRECT": "BOOKING"
      },
      "payment_effect": false
    }
  },
  "mcp": {
    "endpoint": "https://providhere-lab.pages.dev/mcp",
    "transport": "Streamable HTTP",
    "public": true,
    "authentication": "none",
    "protocol_versions": [
      "2026-07-28",
      "2025-11-25",
      "2025-06-18",
      "2025-03-26"
    ],
    "tools": [
      "professionia_get_professional",
      "professionia_read_actions",
      "professionia_send_request",
      "professionia_read_planning",
      "professionia_prepare_booking",
      "professionia_reserve_slot"
    ],
    "recommended_flow": [
      "professionia_get_professional",
      "professionia_send_request"
    ],
    "read_actions_optional": true,
    "permission_revalidation_on_send": true,
    "planning_read_tool": "professionia_read_planning",
    "reservation_tool": "professionia_reserve_slot",
    "booking_requires_explicit_business_opt_in": true,
    "reservation_flow": [
      "professionia_read_planning",
      "professionia_prepare_booking",
      "explicit_user_confirmation",
      "professionia_reserve_slot"
    ],
    "booking_prepare_tool": "professionia_prepare_booking"
  },
  "webmcp": {
    "runtime": "document.modelContext",
    "compatibility_fallback": "navigator.modelContext",
    "public": true,
    "tools": [
      "professionia_read_actions",
      "professionia_send_request",
      "professionia_read_planning",
      "professionia_prepare_booking",
      "professionia_reserve_slot"
    ]
  },
  "action": {
    "protocol": "professionia-action-v1",
    "allowed": [
      "CONTACT",
      "QUOTE"
    ],
    "external_effects": false,
    "professional_controls_permissions": true,
    "public_clients_allowed": true,
    "protections": [
      "strict schema validation",
      "short-lived internal capability",
      "idempotency",
      "deduplication",
      "rate limits",
      "professional opt-in"
    ],
    "forbidden_effects": [
      "EMAIL_SEND",
      "ORDER",
      "PAYMENT",
      "WEBHOOK",
      "PROFILE_MUTATION"
    ],
    "discovery_snapshot_in_professional_read": true,
    "permission_revalidation_on_write": true,
    "allowed_types": [
      "CONTACT",
      "QUOTE"
    ],
    "effects": {
      "requests": "INBOX_ONLY",
      "agent_booking": "SAME_AS_PUBLIC_PLANNING"
    },
    "reservation": {
      "agent_permission_only": true,
      "same_rules_as_public_planning": true,
      "prepare_endpoint": "/api/v1/reservations/prepare",
      "submit_endpoint": "/api/v1/reservations",
      "explicit_user_confirmation_required": true,
      "payment": false
    }
  },
  "discovery": {
    "sitemap": "https://providhere-lab.pages.dev/sitemap.xml",
    "robots": "https://providhere-lab.pages.dev/robots.txt",
    "llms": "https://providhere-lab.pages.dev/llms.txt",
    "openapi": "https://providhere-lab.pages.dev/openapi.json",
    "mcp": "https://providhere-lab.pages.dev/mcp"
  },
  "safety": {
    "private_node_access": false,
    "inbound_private_bridge": false,
    "user_agent_identity_trusted": false,
    "business_instructions_untrusted": true,
    "reservation_slot_revalidated_on_write": true,
    "booking_is_professionia_internal_state": true,
    "external_system_effects": false
  },
  "planning": {
    "public": true,
    "human_booking_independent_of_action": true,
    "modes": [
      "INFO",
      "REQUEST",
      "DIRECT"
    ],
    "slot_states": [
      "AVAILABLE",
      "REQUEST_PENDING",
      "RESERVED"
    ],
    "request_mode": "multiple pending requests may share one slot; professional decides",
    "direct_mode": "only one confirmed booking may occupy a slot"
  }
}
