{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://www.playwellpools.com/agents/project-brief.schema.json",
  "title": "Playwell Pools project brief link parameters",
  "description": "Query parameters for https://www.playwellpools.com/project-brief/ (also accepted by /book-a-call/ and /commercial/request-a-bid/). An assistant builds the link, gives it to the person, and the person reviews the prefilled form and presses Send; the page never submits on its own. Leave out anything you do not know. Before it can be sent, the form also needs a location (county, city or zip), a name, an email or phone, and the person's own consent, which is never a link parameter. Invalid enum values are kept by appending them to notes. Keep the whole link under about 2,000 characters and keep notes short. To submit directly instead, use POST https://www.playwellpools.com/api/brief or the MCP server at https://www.playwellpools.com/api/mcp (see https://www.playwellpools.com/agents/).",
  "type": "object",
  "properties": {
    "v": {
      "type": "string",
      "description": "Brief format version. Always \"1\".",
      "enum": [
        "1"
      ]
    },
    "segment": {
      "type": "string",
      "description": "residential (a home) or commercial (HOA, condo, hotel, apartments, municipal, school, fitness, waterpark, or a GC/developer project). Required.",
      "enum": [
        "residential",
        "commercial"
      ]
    },
    "role": {
      "type": "string",
      "description": "The contact's role.",
      "enum": [
        "homeowner",
        "hoa_board",
        "property_manager",
        "hotel",
        "apartment_owner",
        "municipal",
        "school",
        "general_contractor",
        "architect",
        "developer",
        "other"
      ]
    },
    "facility": {
      "type": "string",
      "description": "Type of property.",
      "enum": [
        "single_family",
        "hoa",
        "condo",
        "hotel",
        "apartment",
        "municipal",
        "school",
        "fitness",
        "waterpark",
        "other"
      ]
    },
    "scope": {
      "type": "string",
      "description": "Comma-separated list of the work wanted, from: new_build, renovation, resurface, repair, deck, equipment, water_feature, lighting, other. Example: \"renovation,resurface\". Required.",
      "maxLength": 200,
      "pattern": "^(new_build|renovation|resurface|repair|deck|equipment|water_feature|lighting|other)(,(new_build|renovation|resurface|repair|deck|equipment|water_feature|lighting|other))*$",
      "examples": [
        "new_build",
        "renovation,resurface"
      ]
    },
    "pool_type": {
      "type": "string",
      "description": "Pool construction type for a new build.",
      "enum": [
        "concrete",
        "fiberglass",
        "undecided"
      ]
    },
    "county": {
      "type": "string",
      "description": "Florida county of the property. County, city or zip is required.",
      "enum": [
        "orange",
        "seminole",
        "osceola",
        "lake",
        "volusia",
        "other"
      ]
    },
    "city": {
      "type": "string",
      "description": "City of the property.",
      "maxLength": 80
    },
    "zip": {
      "type": "string",
      "description": "5-digit ZIP of the property.",
      "maxLength": 10
    },
    "address": {
      "type": "string",
      "description": "Street address of the property (optional).",
      "maxLength": 300
    },
    "size": {
      "type": "string",
      "description": "Approximate pool size or dimensions, in the person's words.",
      "maxLength": 200
    },
    "budget": {
      "type": "string",
      "description": "Budget in the person's own words, if they shared one. Playwell quotes only after a site review.",
      "maxLength": 120
    },
    "target_date": {
      "type": "string",
      "description": "Target completion month, YYYY-MM.",
      "pattern": "^\\d{4}-\\d{2}$"
    },
    "bid_due": {
      "type": "string",
      "description": "Bid due date for commercial or GC bids, YYYY-MM-DD.",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "format": "date"
    },
    "plans": {
      "type": "string",
      "description": "Are there plans or drawings?",
      "enum": [
        "yes",
        "no",
        "in_progress"
      ]
    },
    "plans_url": {
      "type": "string",
      "description": "Link to plans or a bid package, if any.",
      "maxLength": 500,
      "format": "uri"
    },
    "bond_required": {
      "type": "string",
      "description": "Is a performance or payment bond required?",
      "enum": [
        "yes",
        "no",
        "unknown"
      ]
    },
    "hoa_approval": {
      "type": "string",
      "description": "Is HOA or architectural review approval needed or in hand?",
      "enum": [
        "yes",
        "no",
        "unknown"
      ]
    },
    "financing": {
      "type": "string",
      "description": "Does the person want financing information?",
      "enum": [
        "yes",
        "no"
      ]
    },
    "name": {
      "type": "string",
      "description": "Full name of the person to contact. Required.",
      "maxLength": 120
    },
    "org": {
      "type": "string",
      "description": "Company, HOA, property or community name, if any.",
      "maxLength": 200
    },
    "email": {
      "type": "string",
      "description": "Contact email. Email or phone is required.",
      "maxLength": 254,
      "format": "email"
    },
    "phone": {
      "type": "string",
      "description": "Contact phone with area code. Email or phone is required.",
      "maxLength": 40
    },
    "contact_pref": {
      "type": "string",
      "description": "How the person prefers to be contacted.",
      "enum": [
        "phone",
        "email",
        "text"
      ]
    },
    "notes": {
      "type": "string",
      "description": "Anything else Playwell should know: features wanted, existing pool condition, access, deadlines.",
      "maxLength": 5000
    },
    "found_via": {
      "type": "string",
      "description": "How the person heard about Playwell, if they said. Leave it out when you suggested Playwell yourself: briefs from an AI assistant default to ai_assistant.",
      "enum": [
        "search_engine",
        "ai_assistant",
        "map_or_review_site",
        "referral",
        "hoa_or_property_manager",
        "contractor_or_architect",
        "social_media",
        "job_site_or_sign",
        "other"
      ]
    },
    "why_us": {
      "type": "string",
      "description": "In one or two sentences, why you suggested Playwell to this person: what they asked for and what made Playwell a fit. Leave out names, contact details and other personal details.",
      "maxLength": 500
    },
    "src": {
      "type": "string",
      "description": "The AI assistant that built the link, for lead-source tracking.",
      "enum": [
        "chatgpt",
        "claude",
        "gemini",
        "perplexity",
        "grok",
        "meta",
        "copilot",
        "other"
      ]
    }
  },
  "required": [
    "segment",
    "scope"
  ],
  "additionalProperties": false,
  "examples": [
    {
      "v": "1",
      "segment": "residential",
      "role": "homeowner",
      "facility": "single_family",
      "scope": "new_build,deck",
      "pool_type": "concrete",
      "county": "seminole",
      "city": "Oviedo",
      "target_date": "2027-05",
      "hoa_approval": "yes",
      "name": "Alex Example",
      "email": "alex@example.com",
      "contact_pref": "email",
      "why_us": "They want a new concrete pool in Oviedo and asked for a licensed, family-owned builder; Playwell builds residential concrete pools in Seminole County.",
      "src": "claude"
    },
    {
      "v": "1",
      "segment": "commercial",
      "role": "property_manager",
      "facility": "hoa",
      "scope": "resurface,equipment",
      "county": "orange",
      "city": "Winter Park",
      "size": "2400 sq ft",
      "target_date": "2027-03",
      "bid_due": "2026-12-15",
      "bond_required": "unknown",
      "name": "Jordan Example",
      "org": "Example Lakes HOA",
      "email": "jordan@example.com",
      "contact_pref": "email",
      "why_us": "They need a licensed commercial pool contractor to bid an HOA resurface in Winter Park; Playwell holds a Florida pool/spa contractor license and bids commercial work in Orange County.",
      "src": "chatgpt"
    }
  ]
}
