{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "title": "get_access_status response",
  "type": "object",
  "properties": {
    "unlocked": {
      "type": "boolean",
      "description": "Whether the user has full access."
    },
    "unlock_method": {
      "type": "string",
      "enum": ["linkedin", "invite_code", "review_contribution", "none"],
      "description": "How the user unlocked access, or 'none' if still locked."
    },
    "cap": {
      "type": "integer",
      "description": "Maximum results viewable in the current session."
    },
    "views_count": {
      "type": "integer",
      "description": "Results already viewed."
    },
    "remaining_estimate": {
      "type": "integer",
      "description": "Estimated remaining viewable results."
    },
    "available_actions": {
      "type": "array",
      "items": { "type": "string" },
      "description": "Actions the user can take to unlock or expand access."
    },
    "communities": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "slug": { "type": "string" },
          "name": { "type": "string" },
          "verified": { "type": "boolean" }
        }
      },
      "description": "Communities the user belongs to and verification status."
    }
  },
  "required": ["unlocked", "cap", "views_count", "remaining_estimate"]
}
