{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://crypticpy.github.io/phct/examples/ai-use-cases/submit/answers.schema.json",
  "title": "AI Use Case Catalog: answers for a new use case",
  "description": "The answers to the submission form at https://crypticpy.github.io/phct/examples/ai-use-cases/submit/, one property per question, keyed by the question's key. Leave out any question you do not have an answer for. Files are not part of this JSON: the submitter attaches them on the submit page (or drags them into the GitHub issue).",
  "type": "object",
  "properties": {
    "title": {
      "title": "Title",
      "description": "What is it called? Specific enough that someone scanning a list of names knows what it is.",
      "type": "string",
      "minLength": 1
    },
    "solution_type": {
      "title": "What is being shared",
      "description": "What are you sharing? Pick the closest match.",
      "type": "string",
      "enum": [
        "Source code",
        "Cloud deployment",
        "Vendor product",
        "Internal tool",
        "Playbook or write-up",
        "Dataset",
        "Dashboard or report",
        "Prompt library",
        "Training material",
        "Governance or policy document",
        "Other"
      ]
    },
    "use_case_category": {
      "title": "Use case category",
      "description": "Which of the four categories fits best? Broad, HHS-adapted use-case categories. Area of work (below) is the finer cut.",
      "type": "string",
      "enum": [
        "Administrative & task automation",
        "Communications, media & writing",
        "Coding & brainstorming",
        "Operations & logistics"
      ]
    },
    "area": {
      "title": "Area of work",
      "description": "Which areas of work does it apply to? Select all that fit — these are business functions as much as health programs.",
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "Epidemiology & surveillance",
          "Clinical & community services",
          "Environmental health",
          "Emergency preparedness",
          "Communications & outreach",
          "Data & informatics",
          "Policy & planning",
          "HR & workforce",
          "Finance, procurement & contracts",
          "IT & operations",
          "Legal & compliance",
          "Staff & partner coordination",
          "Leadership & administration"
        ]
      },
      "uniqueItems": true,
      "minItems": 1
    },
    "stage": {
      "title": "Stage",
      "description": "How far along is it? Pick the stage that matches real use, not the plan.",
      "type": "string",
      "enum": [
        "Idea / exploring",
        "Pilot",
        "In production",
        "Paused or retired"
      ]
    },
    "summary": {
      "title": "Summary",
      "description": "In one or two sentences, what does it do? Shown on the catalog card. Plain language, no jargon.",
      "type": "string",
      "minLength": 1
    },
    "impact": {
      "title": "Result in one line",
      "description": "What is the single most concrete result so far? A number if you have one.",
      "type": "string"
    },
    "organization": {
      "title": "Organization",
      "description": "Which organization is sharing this? The city, county, agency or health department that built or runs it.",
      "type": "string",
      "minLength": 1
    },
    "ai_role": {
      "title": "How AI is involved",
      "description": "Is the AI in the product, or was AI used to build it?",
      "type": "string",
      "enum": [
        "AI is part of the solution",
        "AI was used to build it",
        "Both"
      ]
    },
    "ai_types": {
      "title": "Types of AI",
      "description": "What kinds of AI does it use? Select all that apply.",
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "Generative text (LLM)",
          "Chat assistant",
          "Document Q&A (RAG)",
          "Classification & NLP",
          "Prediction & forecasting",
          "Computer vision",
          "Speech & transcription",
          "Translation",
          "Agents & automation",
          "Rules-based (no ML)"
        ]
      },
      "uniqueItems": true
    },
    "ai_tools": {
      "title": "AI tools & models",
      "description": "Which AI tools, models or services does it use? Name the models, platforms or libraries that matter. Each item is one line of its own. Never put a comma inside an item.",
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "pattern": "^[^,\\r\\n]+$"
      }
    },
    "platform": {
      "title": "Where it runs",
      "description": "Where does it run? Select all that apply.",
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "AWS",
          "Microsoft Azure",
          "Google Cloud",
          "On-premises",
          "Vendor / SaaS hosted",
          "Enterprise AI workspace",
          "Low-code platform",
          "Desktop or local"
        ]
      },
      "uniqueItems": true
    },
    "vendor": {
      "title": "Vendor or partner",
      "description": "If a vendor or partner built or hosts it, who? Leave it blank if your own team built it.",
      "type": "string"
    },
    "expertise": {
      "title": "Skills needed to set it up",
      "description": "Who is the least technical person who could get this running? Judge it by setting the thing up, not by using it afterwards.",
      "type": "string",
      "enum": [
        "Anyone on staff",
        "Power user",
        "Analyst or data scientist",
        "Developer",
        "Contractor or vendor"
      ]
    },
    "readiness": {
      "title": "Readiness",
      "description": "What would another team need before they could use this? Select all that apply.",
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "Ready to deploy",
          "Guided setup",
          "Needs customization",
          "Needs a contractor",
          "Needs a paid license",
          "Needs a data agreement",
          "Human review built in",
          "Reference only"
        ]
      },
      "uniqueItems": true
    },
    "repo_url": {
      "title": "Source code",
      "description": "If the code is public, where? GitHub, GitLab, Azure DevOps or any public repository.",
      "type": "string",
      "format": "uri",
      "pattern": "^https?://\\S+$"
    },
    "demo_url": {
      "title": "Live site or demo",
      "description": "Link to a live site or demo.",
      "type": "string",
      "format": "uri",
      "pattern": "^https?://\\S+$"
    },
    "docs_url": {
      "title": "Documentation or write-up",
      "description": "Link to documentation, slides or a write-up. A report, a blog post or a vendor case study all count.",
      "type": "string",
      "format": "uri",
      "pattern": "^https?://\\S+$"
    },
    "resources": {
      "title": "Other resources",
      "description": "Anything else worth linking? Shared drives, SharePoint, model cards, container images, vendor pages. Each link is a short label and a web address.",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "label": {
            "type": "string",
            "description": "Short text saying where the link goes."
          },
          "url": {
            "type": "string",
            "format": "uri",
            "pattern": "^https?://\\S+$"
          }
        },
        "required": [
          "url"
        ],
        "additionalProperties": false
      }
    },
    "screenshots": {
      "title": "Screenshots",
      "description": "Screenshots of it in use. Up to eight PNG, JPEG, GIF or WebP images of the tool in use (15 MB total). Make sure no personal or protected information is visible. Only images already hosted at a public https address; each needs alt text of at most 125 characters saying what the screenshot shows. Files are not part of this JSON: the submitter attaches them on the submit page (or drags them into the GitHub issue).",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "format": "uri",
            "pattern": "^https?://\\S+$"
          },
          "alt": {
            "type": "string",
            "maxLength": 125
          }
        },
        "required": [
          "url"
        ],
        "additionalProperties": false
      }
    },
    "deck_pdf": {
      "title": "Slide deck or one-pager (PDF)",
      "description": "Slide deck or one-pager. Attach the slide deck here. A thumbnail is generated from its first page. Only a public https link. Files are not part of this JSON: the submitter attaches them on the submit page (or drags them into the GitHub issue).",
      "type": "string",
      "format": "uri",
      "pattern": "^https?://\\S+$"
    },
    "license": {
      "title": "License",
      "description": "Under what license is it shared? The community default is a permissive open license (MIT, Apache 2.0, CC BY). Submitting does not transfer ownership — your organization keeps authorship.",
      "type": "string",
      "enum": [
        "MIT",
        "Apache 2.0",
        "GPL / AGPL",
        "Creative Commons (CC BY / CC0)",
        "Other open license",
        "Not open source — available on request",
        "Not open source — description only"
      ]
    },
    "access_terms": {
      "title": "Access terms",
      "description": "If it is not open source, how can a peer jurisdiction get access? Government-to-government only, agreement required, contact us — whatever applies. Leave blank for open-licensed resources.",
      "type": "string"
    },
    "portability": {
      "title": "Portable to other platforms",
      "description": "Could it be adapted outside its original vendor ecosystem? Microsoft-built but portable to AWS is 'partially'.",
      "type": "string",
      "enum": [
        "Yes — platform-agnostic",
        "Partially — with rework",
        "No — tied to its platform"
      ]
    },
    "portability_notes": {
      "title": "Portability notes",
      "description": "What would porting it involve? Which pieces are vendor-specific, and what a team on a different stack would need to swap.",
      "type": "string"
    },
    "reused_from": {
      "title": "Adapted from",
      "description": "Did you adapt this from another entry in this catalog? Name the source by its slug — the last part of its URL. The entry you name will say it was adopted by yours. Each item is one line of its own. Never put a comma inside an item.",
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "pattern": "^[^,\\r\\n]+$"
      }
    },
    "cost_band": {
      "title": "Cost to stand up",
      "description": "Roughly what did it cost to get it running the first time? One-time cost: contracts, build, implementation. A band is fine — nobody expects an exact figure.",
      "type": "string",
      "enum": [
        "No new spend",
        "Under $25k",
        "$25k–$100k",
        "$100k–$500k",
        "Over $500k",
        "Not disclosed"
      ]
    },
    "run_cost": {
      "title": "Cost to keep running",
      "description": "What does a normal year cost to run? Licences, hosting and usage charges only — staff time belongs in the write-up.",
      "type": "string",
      "enum": [
        "No ongoing cost",
        "Under $10k/yr",
        "$10k–$50k/yr",
        "Over $50k/yr",
        "Not disclosed"
      ]
    },
    "procurement": {
      "title": "How it was bought",
      "description": "How was this paid for or contracted? Select all that apply. This is the question peers ask most and the one that is hardest to find out.",
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "No procurement needed",
          "Existing enterprise licence",
          "Cooperative or piggyback contract",
          "Competitive solicitation",
          "Sole source",
          "Grant funded",
          "Interagency agreement",
          "In-kind or academic partnership"
        ]
      },
      "uniqueItems": true
    },
    "approvals": {
      "title": "Reviews it went through",
      "description": "Which internal reviews or approvals did it need? Select all that apply. Saying 'not yet reviewed' is more useful to a peer than leaving it blank.",
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "Privacy review",
          "Security review or authority to operate",
          "Legal or contracts review",
          "Records retention review",
          "Labor or workforce consultation",
          "Community or advisory review",
          "Equity impact assessment",
          "Research ethics / IRB",
          "AI governance body",
          "None required",
          "Not yet reviewed"
        ]
      },
      "uniqueItems": true
    },
    "equity_note": {
      "title": "Who it affects",
      "description": "Who could this help or harm, and how did you check? Optional but strongly encouraged. Which populations the output reaches, what you checked for uneven performance, and what you would watch.",
      "type": "string"
    },
    "no_pii_attestation": {
      "title": "No PII/PHI in the shared material",
      "description": "Do you confirm that no personal or protected health information appears in the resource, its documentation, example data or screenshots? The community's baseline for anything published here. Reviewers spot-check; if the answer is no, redact before submitting.",
      "type": "boolean"
    },
    "data_sensitivity": {
      "title": "Data it touches",
      "description": "What kind of data does it touch? Select all that apply. This helps others judge governance and approval effort.",
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "Public data only",
          "De-identified data",
          "Internal, non-public data",
          "Personal information (PII)",
          "Health information (PHI)",
          "Criminal justice data (CJIS)"
        ]
      },
      "uniqueItems": true,
      "minItems": 1
    },
    "data_sources": {
      "title": "Data sources",
      "description": "Which data sources does it use? Describe the sources — do not paste sensitive data. Each item is one line of its own. Never put a comma inside an item.",
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "pattern": "^[^,\\r\\n]+$"
      }
    },
    "audience": {
      "title": "Who sees the output",
      "description": "Who sees the output? Pick the widest group that sees anything it produces.",
      "type": "string",
      "enum": [
        "Public-facing",
        "Internal staff",
        "Partner organizations"
      ]
    },
    "data_governance_notes": {
      "title": "Data-governance caveats",
      "description": "Anything a reusing jurisdiction should know about data handling? Data-use agreements, retention rules, de-identification steps — the caveats that travel with the resource.",
      "type": "string"
    },
    "contact_name": {
      "title": "Contact name",
      "description": "Who can people contact? Someone happy to answer questions from another team.",
      "type": "string",
      "minLength": 1
    },
    "contact_title": {
      "title": "Contact title",
      "description": "What is their role or title? So a peer knows who they are writing to.",
      "type": "string"
    },
    "contact_email": {
      "title": "Contact email",
      "description": "What is their email?",
      "type": "string",
      "format": "email",
      "minLength": 1
    },
    "submitter_github": {
      "title": "GitHub username",
      "description": "Your GitHub username (optional). Used once a year: when this entry is due to be re-confirmed the reminder mentions you, so the request reaches the person who wrote it. Leave it blank and the reminder goes to the maintainers alone.",
      "type": "string"
    },
    "body": {
      "title": "Full write-up",
      "description": "What's the story? Markdown is supported. Suggested headings: Problem, Approach, Time and resources (data, staffing, cost), Results, Lessons learned, How to reuse.",
      "type": "string",
      "minLength": 1
    }
  },
  "required": [
    "title",
    "solution_type",
    "use_case_category",
    "area",
    "stage",
    "summary",
    "organization",
    "ai_role",
    "expertise",
    "license",
    "portability",
    "no_pii_attestation",
    "data_sensitivity",
    "audience",
    "contact_name",
    "contact_email",
    "body"
  ],
  "additionalProperties": false
}
