{
  "openapi": "3.1.0",
  "info": {
    "title": "FloridaMJ Public Content API",
    "version": "1.0.0",
    "description": "Public, read-only content discovery surface for FloridaMJ.com — Florida's cannabis dispensary, smoke shop, and CBD store directory. This document advertises canonical URLs and content collections for AI assistants and answer engines. Real-time inventory, pricing, and transactions are NOT exposed.",
    "contact": {
      "name": "FloridaMJ Editorial",
      "email": "hello@floridamj.com",
      "url": "https://floridamj.com"
    },
    "license": {
      "name": "Editorial content — see Terms of Service",
      "url": "https://floridamj.com/terms-of-service"
    }
  },
  "servers": [
    { "url": "https://floridamj.com", "description": "Production" }
  ],
  "externalDocs": {
    "description": "LLMs.txt — AI assistant context",
    "url": "https://floridamj.com/llms.txt"
  },
  "tags": [
    { "name": "directory", "description": "Operator and listing directory pages" },
    { "name": "cities", "description": "City-level directory pages" },
    { "name": "law", "description": "Florida cannabis statute and rule references" },
    { "name": "editorial", "description": "Guides and blog posts" }
  ],
  "paths": {
    "/dispensaries": {
      "get": {
        "tags": ["directory"],
        "summary": "Florida dispensary directory (MMTCs)",
        "description": "Browseable index of state-licensed Medical Marijuana Treatment Centers with locations across Florida.",
        "responses": { "200": { "description": "HTML directory page" } }
      }
    },
    "/smoke-shops": {
      "get": {
        "tags": ["directory"],
        "summary": "Florida smoke shop directory",
        "responses": { "200": { "description": "HTML directory page" } }
      }
    },
    "/brands": {
      "get": {
        "tags": ["directory"],
        "summary": "Florida cannabis brand index",
        "responses": { "200": { "description": "HTML directory page" } }
      }
    },
    "/strains": {
      "get": {
        "tags": ["directory"],
        "summary": "Cannabis strain library",
        "responses": { "200": { "description": "HTML directory page" } }
      }
    },
    "/cities": {
      "get": {
        "tags": ["cities"],
        "summary": "All featured Florida city directory pages",
        "responses": { "200": { "description": "HTML city index" } }
      }
    },
    "/cities/{city}": {
      "get": {
        "tags": ["cities"],
        "summary": "City-specific dispensary and smoke shop directory",
        "parameters": [{
          "name": "city",
          "in": "path",
          "required": true,
          "schema": {
            "type": "string",
            "enum": [
              "miami","orlando","tampa","jacksonville","fort-lauderdale",
              "st-petersburg","west-palm-beach","sarasota","fort-myers","naples",
              "florida-keys","daytona-beach","lakeland","winter-haven",
              "tallahassee","gainesville","pensacola"
            ]
          }
        }],
        "responses": { "200": { "description": "HTML city page" } }
      }
    },
    "/guides/medical-marijuana-card-florida": {
      "get": {
        "tags": ["editorial"],
        "summary": "How to get a Florida medical marijuana card",
        "responses": { "200": { "description": "HTML guide" } }
      }
    },
    "/laws/florida": {
      "get": {
        "tags": ["law"],
        "summary": "Florida cannabis law overview (§381.986, Amendment 2, Amendment 3)",
        "responses": { "200": { "description": "HTML law reference" } }
      }
    },
    "/blog": {
      "get": {
        "tags": ["editorial"],
        "summary": "Editorial blog index",
        "responses": { "200": { "description": "HTML blog index" } }
      }
    },
    "/sitemap-index.xml": {
      "get": {
        "tags": ["directory"],
        "summary": "Sitemap index (links to all sitemaps)",
        "responses": { "200": { "description": "XML sitemap index" } }
      }
    },
    "/sitemap.xml": {
      "get": {
        "tags": ["directory"],
        "summary": "Main static sitemap",
        "responses": { "200": { "description": "XML sitemap" } }
      }
    },
    "/sitemap-locations.xml": {
      "get": {
        "tags": ["directory"],
        "summary": "Operator location sitemap (dynamic)",
        "responses": { "200": { "description": "XML sitemap" } }
      }
    },
    "/llms.txt": {
      "get": {
        "tags": ["editorial"],
        "summary": "AI assistant context document",
        "responses": { "200": { "description": "Plain text" } }
      }
    },
    "/rss.xml": {
      "get": {
        "tags": ["editorial"],
        "summary": "Blog RSS feed",
        "responses": { "200": { "description": "RSS XML" } }
      }
    }
  }
}
