// Granted — real content, verified against the Granted program library
// 171 programs indexed. Last verified 2026-04-20.

const LIBRARY = [
  {
    title: 'School districts & ESDs',
    sub: 'Capital, planning, CTE, and federal infrastructure funding for K–12 and education service districts.',
    programs: [
      { name: 'OSCIM — Capital Matching', agency: 'Oregon Dept. of Education', desc: 'State match against local school district bonds for capital improvements.' },
      { name: 'TAP — Long-Range Facility Planning', agency: 'ODE Office of School Facilities', desc: 'State-funded planning grants for certified long-range facility plans.' },
      { name: 'CTE Revitalization Grant', agency: 'Oregon Dept. of Education', desc: 'Biennial competition for new and expanded career and technical programs.' },
    ],
  },
  {
    title: 'Community colleges',
    sub: 'Capital construction, technician workforce programs, and federal CTE formula funding.',
    programs: [
      { name: 'HECC Community College Capital', agency: 'Higher Education Coordinating Commission', desc: 'Biennial state capital support for new buildings, renovations, and major systems.' },
      { name: 'Advanced Technological Education', agency: 'National Science Foundation', desc: 'Federal grants for community college technician programs in advanced industries.' },
      { name: 'Perkins V Basic Grant', agency: 'US Dept. of Education (via ODE)', desc: 'Formula funding for career and technical education equipment and programs.' },
    ],
  },
  {
    title: 'Fire & EMS districts',
    sub: 'Equipment, staffing, community risk reduction, station infrastructure, and wildfire defense.',
    programs: [
      { name: 'FEMA Assistance to Firefighters', agency: 'FEMA', desc: 'Core equipment, training, and apparatus grants for fire departments and EMS.' },
      { name: 'SAFER Grant', agency: 'FEMA', desc: 'Federal funding to hire, retain, and recruit firefighters.' },
      { name: 'Community Wildfire Defense Grants', agency: 'USDA Forest Service', desc: 'Planning and implementation funding for at-risk rural communities.' },
    ],
  },
  {
    title: 'Water & sanitary districts',
    sub: 'Drinking water, wastewater, stormwater, and emerging-contaminant infrastructure financing.',
    programs: [
      { name: 'USDA Water & Waste Disposal', agency: 'USDA Rural Development', desc: 'Rural water and wastewater infrastructure — up to 75% grant for the smallest systems.' },
      { name: 'Safe Drinking Water SRF', agency: 'Business Oregon / OHA', desc: 'Low-interest loans with principal forgiveness for disadvantaged systems.' },
      { name: 'Clean Water SRF', agency: 'Oregon DEQ', desc: 'Wastewater treatment, stormwater, and watershed-protection financing.' },
    ],
  },
  {
    title: 'Cities & counties',
    sub: 'Community facilities, public works, brownfields, transportation planning, and economic development.',
    programs: [
      { name: 'USDA Community Facilities', agency: 'USDA Rural Development', desc: 'Rural public buildings — fire stations, libraries, clinics, community centers.' },
      { name: 'CDBG Community Facilities', agency: 'Business Oregon', desc: 'Federal block grants re-granted to rural Oregon cities and counties.' },
      { name: 'Transportation & Growth Management', agency: 'DLCD + ODOT', desc: 'Joint program funding city and county transportation-planning work.' },
    ],
  },
  {
    title: 'Libraries, parks & ports',
    sub: 'Specialty-district funding for cultural, recreational, and working-waterfront entities.',
    programs: [
      { name: 'Local Government Grant Program', agency: 'Oregon Parks & Recreation', desc: 'Playgrounds, sports fields, campgrounds, restrooms, trails, and ADA upgrades.' },
      { name: 'LSTA Competitive Grants', agency: 'State Library of Oregon', desc: 'Programs, technology, and collections funding for public libraries.' },
      { name: 'EPA Brownfields (MARC)', agency: 'US EPA Region 10', desc: 'Assessment and cleanup of contaminated sites to unlock redevelopment.' },
    ],
  },
];

// Entity-type counts — programs in the Granted library where that jurisdiction
// appears in the eligibility list. Live DB snapshot 2026-04-20.
const ENTITIES = [
  ['K–12 school districts', 42],
  ['Education service districts', 8],
  ['Community colleges', 17],
  ['Cities — rural + metro', 36],
  ['Counties', 34],
  ['Fire and EMS districts', 14],
  ['Water and sanitary districts', 15],
  ['Library districts', 5],
  ['Park & recreation districts', 15],
  ['Port districts', 27],
  ['Transit districts', 14],
  ['Tribes', 44],
  ['Watershed councils & SWCDs', 6],
  ['Metropolitan service districts', 3],
  ['Other special districts', 45],
];

// Agency marquee — real agencies represented in the Granted library.
const TICKER = [
  'USDA Rural Development', 'Oregon Parks & Recreation', 'FEMA Assistance to Firefighters',
  'EPA Brownfields MARC', 'Business Oregon CDBG', 'ODE Office of School Facilities',
  "DOE Renew America's Schools", 'Meyer Memorial Trust', 'Oregon Community Foundation',
  'OWEB', 'ODOT Transportation & Growth', 'BIA Tribal Infrastructure',
  'HUD CDBG', 'State Library of Oregon', 'Drinking Water SRF', 'Clean Water SRF',
  'FEMA SAFER', 'Perkins V', 'HECC Community College Capital',
  'OSCIM Capital Matching', 'CTE Revitalization', 'ConnectOregon',
  'LSTA Competitive Grants', 'USDA Community Facilities', 'Oregon Main Street',
  'NOAA Coastal Resilience', 'NSF Advanced Technological Education',
  'HRSA RCORP', 'DOJ COPS Hiring', 'ODOT Small City Allotment',
];

// Oregon silhouette + agency dots (representative statewide coverage).
const OREGON_PATH = "M 45 60 L 920 60 L 950 95 L 960 140 L 960 220 L 940 280 L 920 340 L 930 400 L 935 470 L 920 540 L 870 560 L 790 560 L 720 560 L 640 570 L 540 580 L 440 585 L 360 580 L 300 570 L 240 560 L 180 550 L 120 530 L 85 490 L 70 420 L 60 330 L 48 220 L 40 130 Z";

const AGENCY_DOTS = [
  { x: 120, y: 180, n: 'Astoria', t: 'Port district' },
  { x: 180, y: 250, n: 'Tillamook', t: 'Fire / EMS' },
  { x: 250, y: 330, n: 'Lincoln City', t: 'Library' },
  { x: 290, y: 420, n: 'Newport', t: 'Port / school district' },
  { x: 260, y: 500, n: 'Coos Bay', t: 'City + water district' },
  { x: 330, y: 530, n: 'Coquille', t: 'School district' },
  { x: 380, y: 480, n: 'Roseburg', t: 'County' },
  { x: 340, y: 420, n: 'Eugene', t: 'County + Transit' },
  { x: 310, y: 350, n: 'Corvallis', t: 'City + School' },
  { x: 340, y: 280, n: 'Salem', t: 'State agencies' },
  { x: 300, y: 200, n: 'Portland', t: 'Metro' },
  { x: 370, y: 170, n: 'Hood River', t: 'Port + City' },
  { x: 450, y: 190, n: 'The Dalles', t: 'City + Fire' },
  { x: 550, y: 210, n: 'Pendleton', t: 'County + School' },
  { x: 720, y: 180, n: 'La Grande', t: 'Water district' },
  { x: 810, y: 230, n: 'Enterprise', t: 'School + Library' },
  { x: 870, y: 310, n: 'Baker City', t: 'City + Fire' },
  { x: 820, y: 400, n: 'Ontario', t: 'City + Hospital' },
  { x: 720, y: 420, n: 'Burns', t: 'County' },
  { x: 580, y: 360, n: 'John Day', t: 'School district' },
  { x: 500, y: 330, n: 'Prineville', t: 'City + Library' },
  { x: 440, y: 290, n: 'Bend', t: 'City + Park district' },
  { x: 410, y: 360, n: 'La Pine', t: 'Water district' },
  { x: 440, y: 470, n: 'Klamath Falls', t: 'Tribe + School' },
  { x: 540, y: 500, n: 'Lakeview', t: 'County + Fire' },
  { x: 700, y: 500, n: 'Jordan Valley', t: 'Special district' },
  { x: 220, y: 380, n: 'Florence', t: 'Port + Water' },
  { x: 410, y: 520, n: 'Medford', t: 'County + ESD' },
  { x: 350, y: 550, n: 'Ashland', t: 'City' },
  { x: 260, y: 130, n: 'Seaside', t: 'City' },
  { x: 380, y: 340, n: 'Albany', t: 'City + School' },
  { x: 320, y: 250, n: 'Hillsboro', t: 'Fire / EMS' },
  { x: 280, y: 160, n: 'Warrenton', t: 'Port district' },
  { x: 480, y: 240, n: 'Condon', t: 'Library district' },
  { x: 620, y: 290, n: 'Canyon City', t: 'Fire / EMS' },
  { x: 420, y: 430, n: 'Oakridge', t: 'School district' },
  { x: 540, y: 460, n: 'Silver Lake', t: 'Watershed' },
  { x: 680, y: 340, n: 'Mitchell', t: 'School district' },
  { x: 770, y: 290, n: 'Union', t: 'County' },
  { x: 590, y: 150, n: 'Arlington', t: 'Port + City' },
  { x: 240, y: 280, n: 'Dallas', t: 'County' },
  { x: 390, y: 220, n: 'Sandy', t: 'Fire / EMS' },
  { x: 360, y: 150, n: 'St Helens', t: 'Port district' },
];

const BOUNDARIES = [
  { t: "We don't guarantee awards", d: "nobody honest can." },
  { t: "We don't take contingency fees", d: "prohibited by Uniform Guidance §200.209 on federal grants." },
  { t: "We don't work on projects with conflicts", d: "against our team's other professional engagements." },
  { t: "We don't pretend to do engineering", d: "when a grant requires it — we partner with Oregon civil and structural firms." },
];

const SERVICES = [
  { name: 'Grant scan', price: '$1,500', turn: '72-hour turnaround', d: 'We profile your agency and project, then deliver a shortlist of matched opportunities with full eligibility, scoring, and fit analysis for every program that applies to you.' },
  { name: 'Application writing', price: '$5,000–$12,000', turn: 'Flat fee — never contingent on the award', d: 'We draft the narrative, build the budget, run compliance checks, and deliver a submission-ready package. Payable regardless of outcome.' },
  { name: 'Retainer pipeline', price: '$2,500–$4,000', unit: '/month', turn: 'Six-month terms', d: 'Quarterly scan refreshes, deadline alerts, and three to six applications a year. Best economics for agencies pursuing grants continuously.' },
];

const LIBRARY_SIZE = 171;
const AGENCY_COUNT = 50;

Object.assign(window, { LIBRARY, ENTITIES, TICKER, OREGON_PATH, AGENCY_DOTS, BOUNDARIES, SERVICES, LIBRARY_SIZE, AGENCY_COUNT });
