{
  "witnesses": [
    "anonymous",
    "stranger",
    "founder",
    "participant",
    "judge",
    "organizer"
  ],
  "rows": [
    {
      "name": "system.home",
      "route": "GET /api",
      "audience": "public",
      "cells": {
        "anonymous": "allow",
        "stranger": "allow",
        "founder": "allow",
        "participant": "allow",
        "judge": "allow",
        "organizer": "allow"
      }
    },
    {
      "name": "system.about",
      "route": "GET /api/about",
      "audience": "public",
      "cells": {
        "anonymous": "allow",
        "stranger": "allow",
        "founder": "allow",
        "participant": "allow",
        "judge": "allow",
        "organizer": "allow"
      }
    },
    {
      "name": "system.docs",
      "route": "GET /api/docs",
      "audience": "public",
      "cells": {
        "anonymous": "allow",
        "stranger": "allow",
        "founder": "allow",
        "participant": "allow",
        "judge": "allow",
        "organizer": "allow"
      }
    },
    {
      "name": "system.openapi",
      "route": "GET /api/openapi.json",
      "audience": "public",
      "cells": {
        "anonymous": "allow",
        "stranger": "allow",
        "founder": "allow",
        "participant": "allow",
        "judge": "allow",
        "organizer": "allow"
      }
    },
    {
      "name": "system.capabilities",
      "route": "GET /api/capabilities",
      "audience": "public",
      "cells": {
        "anonymous": "allow",
        "stranger": "allow",
        "founder": "allow",
        "participant": "allow",
        "judge": "allow",
        "organizer": "allow"
      }
    },
    {
      "name": "system.healthz",
      "route": "GET /api/healthz",
      "audience": "public",
      "cells": {
        "anonymous": "allow",
        "stranger": "allow",
        "founder": "allow",
        "participant": "allow",
        "judge": "allow",
        "organizer": "allow"
      }
    },
    {
      "name": "system.limits",
      "route": "GET /api/system/limits",
      "audience": "public",
      "cells": {
        "anonymous": "allow",
        "stranger": "allow",
        "founder": "allow",
        "participant": "allow",
        "judge": "allow",
        "organizer": "allow"
      }
    },
    {
      "name": "system.rate_probe",
      "route": "POST /api/system/rate-probe",
      "audience": "public",
      "cells": {
        "anonymous": "allow",
        "stranger": "allow",
        "founder": "allow",
        "participant": "allow",
        "judge": "allow",
        "organizer": "allow"
      }
    },
    {
      "name": "auth.signin",
      "route": "GET /api/signin",
      "audience": "public",
      "cells": {
        "anonymous": "allow",
        "stranger": "allow",
        "founder": "allow",
        "participant": "allow",
        "judge": "allow",
        "organizer": "allow"
      }
    },
    {
      "name": "auth.request",
      "route": "POST /api/signin",
      "audience": "public",
      "cells": {
        "anonymous": "allow",
        "stranger": "allow",
        "founder": "allow",
        "participant": "allow",
        "judge": "allow",
        "organizer": "allow"
      }
    },
    {
      "name": "auth.link",
      "route": "GET /api/signin/:token",
      "audience": "public",
      "cells": {
        "anonymous": "allow",
        "stranger": "allow",
        "founder": "allow",
        "participant": "allow",
        "judge": "allow",
        "organizer": "allow"
      }
    },
    {
      "name": "auth.session",
      "route": "POST /api/session",
      "audience": "public",
      "cells": {
        "anonymous": "allow",
        "stranger": "allow",
        "founder": "allow",
        "participant": "allow",
        "judge": "allow",
        "organizer": "allow"
      }
    },
    {
      "name": "auth.whoami",
      "route": "GET /api/whoami",
      "audience": "account",
      "cells": {
        "anonymous": "unauthenticated",
        "stranger": "allow",
        "founder": "allow",
        "participant": "allow",
        "judge": "allow",
        "organizer": "allow"
      }
    },
    {
      "name": "auth.signout",
      "route": "POST /api/signout",
      "audience": "account",
      "cells": {
        "anonymous": "unauthenticated",
        "stranger": "allow",
        "founder": "allow",
        "participant": "allow",
        "judge": "allow",
        "organizer": "allow"
      }
    },
    {
      "name": "tokens.list",
      "route": "GET /api/me/tokens",
      "audience": "account",
      "cells": {
        "anonymous": "unauthenticated",
        "stranger": "allow",
        "founder": "allow",
        "participant": "allow",
        "judge": "allow",
        "organizer": "allow"
      }
    },
    {
      "name": "tokens.create",
      "route": "POST /api/me/tokens",
      "audience": "account",
      "cells": {
        "anonymous": "unauthenticated",
        "stranger": "allow",
        "founder": "allow",
        "participant": "allow",
        "judge": "allow",
        "organizer": "allow"
      }
    },
    {
      "name": "tokens.revoke",
      "route": "POST /api/me/tokens/:tokenId/revoke",
      "audience": "account",
      "cells": {
        "anonymous": "unauthenticated",
        "stranger": "allow",
        "founder": "allow",
        "participant": "allow",
        "judge": "allow",
        "organizer": "allow"
      }
    },
    {
      "name": "events.list",
      "route": "GET /api/events",
      "audience": "public",
      "cells": {
        "anonymous": "allow",
        "stranger": "allow",
        "founder": "allow",
        "participant": "allow",
        "judge": "allow",
        "organizer": "allow"
      }
    },
    {
      "name": "events.show",
      "route": "GET /api/events/:event",
      "audience": "public",
      "cells": {
        "anonymous": "allow",
        "stranger": "allow",
        "founder": "allow",
        "participant": "allow",
        "judge": "allow",
        "organizer": "allow"
      }
    },
    {
      "name": "events.create",
      "route": "POST /api/events",
      "audience": "founder",
      "cells": {
        "anonymous": "unauthenticated",
        "stranger": "forbidden",
        "founder": "allow",
        "participant": "forbidden",
        "judge": "forbidden",
        "organizer": "forbidden"
      }
    },
    {
      "name": "events.update",
      "route": "POST /api/events/:event",
      "audience": "organizer",
      "cells": {
        "anonymous": "unauthenticated",
        "stranger": "notFound",
        "founder": "notFound",
        "participant": "forbidden",
        "judge": "forbidden",
        "organizer": "allow"
      }
    },
    {
      "name": "events.mine",
      "route": "GET /api/mine",
      "audience": "account",
      "cells": {
        "anonymous": "unauthenticated",
        "stranger": "allow",
        "founder": "allow",
        "participant": "allow",
        "judge": "allow",
        "organizer": "allow"
      }
    },
    {
      "name": "events.invite",
      "route": "POST /api/events/:event/invitations",
      "audience": "organizer",
      "cells": {
        "anonymous": "unauthenticated",
        "stranger": "notFound",
        "founder": "notFound",
        "participant": "forbidden",
        "judge": "forbidden",
        "organizer": "allow"
      }
    },
    {
      "name": "events.judges",
      "route": "GET /api/events/:event/judges",
      "audience": "organizer",
      "cells": {
        "anonymous": "unauthenticated",
        "stranger": "notFound",
        "founder": "notFound",
        "participant": "forbidden",
        "judge": "forbidden",
        "organizer": "allow"
      }
    },
    {
      "name": "events.clock",
      "route": "GET /api/events/:event/clock",
      "audience": "organizer",
      "cells": {
        "anonymous": "unauthenticated",
        "stranger": "notFound",
        "founder": "notFound",
        "participant": "forbidden",
        "judge": "forbidden",
        "organizer": "allow"
      }
    },
    {
      "name": "events.warp_clock",
      "route": "POST /api/events/:event/clock/warp",
      "audience": "organizer",
      "cells": {
        "anonymous": "unauthenticated",
        "stranger": "notFound",
        "founder": "notFound",
        "participant": "forbidden",
        "judge": "forbidden",
        "organizer": "allow"
      }
    },
    {
      "name": "events.webhooks",
      "route": "GET /api/events/:event/webhooks",
      "audience": "organizer",
      "cells": {
        "anonymous": "unauthenticated",
        "stranger": "notFound",
        "founder": "notFound",
        "participant": "forbidden",
        "judge": "forbidden",
        "organizer": "allow"
      }
    },
    {
      "name": "events.ping_webhook",
      "route": "POST /api/events/:event/webhooks/ping",
      "audience": "organizer",
      "cells": {
        "anonymous": "unauthenticated",
        "stranger": "notFound",
        "founder": "notFound",
        "participant": "forbidden",
        "judge": "forbidden",
        "organizer": "allow"
      }
    },
    {
      "name": "events.revoke_role",
      "route": "POST /api/events/:event/roles/revoke",
      "audience": "organizer",
      "cells": {
        "anonymous": "unauthenticated",
        "stranger": "notFound",
        "founder": "notFound",
        "participant": "forbidden",
        "judge": "forbidden",
        "organizer": "allow"
      }
    },
    {
      "name": "comments.add",
      "route": "POST /api/events/:event/projects/:project/comments",
      "audience": "account",
      "cells": {
        "anonymous": "unauthenticated",
        "stranger": "allow",
        "founder": "allow",
        "participant": "allow",
        "judge": "allow",
        "organizer": "allow"
      }
    },
    {
      "name": "comments.hide",
      "route": "POST /api/events/:event/projects/:project/comments/hide",
      "audience": "organizer",
      "cells": {
        "anonymous": "unauthenticated",
        "stranger": "notFound",
        "founder": "notFound",
        "participant": "forbidden",
        "judge": "forbidden",
        "organizer": "allow"
      }
    },
    {
      "name": "tracks.create",
      "route": "POST /api/events/:event/tracks",
      "audience": "organizer",
      "cells": {
        "anonymous": "unauthenticated",
        "stranger": "notFound",
        "founder": "notFound",
        "participant": "forbidden",
        "judge": "forbidden",
        "organizer": "allow"
      }
    },
    {
      "name": "teams.list",
      "route": "GET /api/events/:event/teams",
      "audience": "participant",
      "cells": {
        "anonymous": "unauthenticated",
        "stranger": "notFound",
        "founder": "notFound",
        "participant": "allow",
        "judge": "forbidden",
        "organizer": "forbidden"
      }
    },
    {
      "name": "teams.join",
      "route": "POST /api/events/:event/teams/:team/members",
      "audience": "participant",
      "gate": "submissions",
      "cells": {
        "anonymous": "unauthenticated",
        "stranger": "notFound",
        "founder": "notFound",
        "participant": "allow",
        "judge": "forbidden",
        "organizer": "forbidden"
      }
    },
    {
      "name": "teams.leave",
      "route": "POST /api/events/:event/teams/:team/leave",
      "audience": "participant",
      "gate": "submissions",
      "cells": {
        "anonymous": "unauthenticated",
        "stranger": "notFound",
        "founder": "notFound",
        "participant": "allow",
        "judge": "forbidden",
        "organizer": "forbidden"
      }
    },
    {
      "name": "teams.invite_rotate",
      "route": "POST /api/events/:event/teams/:team/invites/rotate",
      "audience": "participant",
      "gate": "submissions",
      "cells": {
        "anonymous": "unauthenticated",
        "stranger": "notFound",
        "founder": "notFound",
        "participant": "allow",
        "judge": "forbidden",
        "organizer": "forbidden"
      }
    },
    {
      "name": "projects.list",
      "route": "GET /api/events/:event/projects",
      "audience": "public",
      "cells": {
        "anonymous": "allow",
        "stranger": "allow",
        "founder": "allow",
        "participant": "allow",
        "judge": "allow",
        "organizer": "allow"
      }
    },
    {
      "name": "projects.show",
      "route": "GET /api/events/:event/projects/:project",
      "audience": "public",
      "cells": {
        "anonymous": "allow",
        "stranger": "allow",
        "founder": "allow",
        "participant": "allow",
        "judge": "allow",
        "organizer": "allow"
      }
    },
    {
      "name": "projects.create",
      "route": "POST /api/events/:event/projects",
      "audience": "participant",
      "gate": "submissions",
      "cells": {
        "anonymous": "unauthenticated",
        "stranger": "notFound",
        "founder": "notFound",
        "participant": "allow",
        "judge": "forbidden",
        "organizer": "forbidden"
      }
    },
    {
      "name": "projects.update",
      "route": "POST /api/events/:event/projects/:project",
      "audience": "participant",
      "owner": "team",
      "gate": "submissions",
      "cells": {
        "anonymous": "unauthenticated",
        "stranger": "notFound",
        "founder": "notFound",
        "participant": "allow",
        "judge": "forbidden",
        "organizer": "forbidden"
      }
    },
    {
      "name": "projects.submit",
      "route": "POST /api/events/:event/projects/:project/submit",
      "audience": "participant",
      "owner": "team",
      "gate": "submissions",
      "cells": {
        "anonymous": "unauthenticated",
        "stranger": "notFound",
        "founder": "notFound",
        "participant": "allow",
        "judge": "forbidden",
        "organizer": "forbidden"
      }
    },
    {
      "name": "projects.withdraw",
      "route": "POST /api/events/:event/projects/:project/withdraw",
      "audience": "participant",
      "owner": "team",
      "gate": "submissions",
      "cells": {
        "anonymous": "unauthenticated",
        "stranger": "notFound",
        "founder": "notFound",
        "participant": "allow",
        "judge": "forbidden",
        "organizer": "forbidden"
      }
    },
    {
      "name": "projects.pull",
      "route": "POST /api/events/:event/projects/:project/pull",
      "audience": "organizer",
      "cells": {
        "anonymous": "unauthenticated",
        "stranger": "notFound",
        "founder": "notFound",
        "participant": "forbidden",
        "judge": "forbidden",
        "organizer": "allow"
      }
    },
    {
      "name": "projects.disqualify",
      "route": "POST /api/events/:event/projects/:project/disqualify",
      "audience": "organizer",
      "cells": {
        "anonymous": "unauthenticated",
        "stranger": "notFound",
        "founder": "notFound",
        "participant": "forbidden",
        "judge": "forbidden",
        "organizer": "allow"
      }
    },
    {
      "name": "duplicates.list",
      "route": "GET /api/events/:event/manage/duplicates",
      "audience": "organizer",
      "cells": {
        "anonymous": "unauthenticated",
        "stranger": "notFound",
        "founder": "notFound",
        "participant": "forbidden",
        "judge": "forbidden",
        "organizer": "allow"
      }
    },
    {
      "name": "duplicates.triage",
      "route": "POST /api/events/:event/manage/duplicates/triage",
      "audience": "organizer",
      "cells": {
        "anonymous": "unauthenticated",
        "stranger": "notFound",
        "founder": "notFound",
        "participant": "forbidden",
        "judge": "forbidden",
        "organizer": "allow"
      }
    },
    {
      "name": "rubrics.show",
      "route": "GET /api/events/:event/rubric",
      "audience": "public",
      "cells": {
        "anonymous": "allow",
        "stranger": "allow",
        "founder": "allow",
        "participant": "allow",
        "judge": "allow",
        "organizer": "allow"
      }
    },
    {
      "name": "rubrics.create",
      "route": "POST /api/events/:event/rubric",
      "audience": "organizer",
      "cells": {
        "anonymous": "unauthenticated",
        "stranger": "notFound",
        "founder": "notFound",
        "participant": "forbidden",
        "judge": "forbidden",
        "organizer": "allow"
      }
    },
    {
      "name": "rubrics.publish",
      "route": "POST /api/events/:event/rubric/publish",
      "audience": "organizer",
      "cells": {
        "anonymous": "unauthenticated",
        "stranger": "notFound",
        "founder": "notFound",
        "participant": "forbidden",
        "judge": "forbidden",
        "organizer": "allow"
      }
    },
    {
      "name": "judging.queue",
      "route": "GET /api/events/:event/judging",
      "audience": "judge",
      "cells": {
        "anonymous": "unauthenticated",
        "stranger": "notFound",
        "founder": "notFound",
        "participant": "forbidden",
        "judge": "allow",
        "organizer": "forbidden"
      }
    },
    {
      "name": "ballots.save",
      "route": "POST /api/events/:event/projects/:project/ballot",
      "audience": "judge",
      "owner": "judge",
      "gate": "judging",
      "cells": {
        "anonymous": "unauthenticated",
        "stranger": "notFound",
        "founder": "notFound",
        "participant": "forbidden",
        "judge": "allow",
        "organizer": "forbidden"
      }
    },
    {
      "name": "duels.next",
      "route": "GET /api/events/:event/duel",
      "audience": "judge",
      "cells": {
        "anonymous": "unauthenticated",
        "stranger": "notFound",
        "founder": "notFound",
        "participant": "forbidden",
        "judge": "allow",
        "organizer": "forbidden"
      }
    },
    {
      "name": "duels.decide",
      "route": "POST /api/events/:event/duel",
      "audience": "judge",
      "gate": "judging",
      "cells": {
        "anonymous": "unauthenticated",
        "stranger": "notFound",
        "founder": "notFound",
        "participant": "forbidden",
        "judge": "allow",
        "organizer": "forbidden"
      }
    },
    {
      "name": "assignments.draw",
      "route": "POST /api/events/:event/assignments",
      "audience": "organizer",
      "cells": {
        "anonymous": "unauthenticated",
        "stranger": "notFound",
        "founder": "notFound",
        "participant": "forbidden",
        "judge": "forbidden",
        "organizer": "allow"
      }
    },
    {
      "name": "assignments.preview",
      "route": "GET /api/events/:event/assignments/preview",
      "audience": "organizer",
      "cells": {
        "anonymous": "unauthenticated",
        "stranger": "notFound",
        "founder": "notFound",
        "participant": "forbidden",
        "judge": "forbidden",
        "organizer": "allow"
      }
    },
    {
      "name": "judges.roster",
      "route": "GET /api/events/:event/judges/roster",
      "audience": "organizer",
      "cells": {
        "anonymous": "unauthenticated",
        "stranger": "notFound",
        "founder": "notFound",
        "participant": "forbidden",
        "judge": "forbidden",
        "organizer": "allow"
      }
    },
    {
      "name": "judges.configure",
      "route": "POST /api/events/:event/judges/configure",
      "audience": "organizer",
      "cells": {
        "anonymous": "unauthenticated",
        "stranger": "notFound",
        "founder": "notFound",
        "participant": "forbidden",
        "judge": "forbidden",
        "organizer": "allow"
      }
    },
    {
      "name": "judges.recusal",
      "route": "POST /api/events/:event/judges/recusal",
      "audience": "organizer",
      "cells": {
        "anonymous": "unauthenticated",
        "stranger": "notFound",
        "founder": "notFound",
        "participant": "forbidden",
        "judge": "forbidden",
        "organizer": "allow"
      }
    },
    {
      "name": "judges.self_recusal",
      "route": "POST /api/events/:event/judging/:project/recuse",
      "audience": "judge",
      "gate": "judging",
      "cells": {
        "anonymous": "unauthenticated",
        "stranger": "notFound",
        "founder": "notFound",
        "participant": "forbidden",
        "judge": "allow",
        "organizer": "forbidden"
      }
    },
    {
      "name": "reviews.requests",
      "route": "GET /api/events/:event/review-requests",
      "audience": "organizer",
      "cells": {
        "anonymous": "unauthenticated",
        "stranger": "notFound",
        "founder": "notFound",
        "participant": "forbidden",
        "judge": "forbidden",
        "organizer": "allow"
      }
    },
    {
      "name": "reviews.request",
      "route": "POST /api/events/:event/review-requests",
      "audience": "organizer",
      "cells": {
        "anonymous": "unauthenticated",
        "stranger": "notFound",
        "founder": "notFound",
        "participant": "forbidden",
        "judge": "forbidden",
        "organizer": "allow"
      }
    },
    {
      "name": "reviews.cancel",
      "route": "POST /api/events/:event/review-requests/:request/cancel",
      "audience": "organizer",
      "cells": {
        "anonymous": "unauthenticated",
        "stranger": "notFound",
        "founder": "notFound",
        "participant": "forbidden",
        "judge": "forbidden",
        "organizer": "allow"
      }
    },
    {
      "name": "events.dashboard",
      "route": "GET /api/events/:event/dashboard",
      "audience": "organizer",
      "cells": {
        "anonymous": "unauthenticated",
        "stranger": "notFound",
        "founder": "notFound",
        "participant": "forbidden",
        "judge": "forbidden",
        "organizer": "allow"
      }
    },
    {
      "name": "results.show",
      "route": "GET /api/events/:event/results",
      "audience": "public",
      "cells": {
        "anonymous": "allow",
        "stranger": "allow",
        "founder": "allow",
        "participant": "allow",
        "judge": "allow",
        "organizer": "allow"
      }
    },
    {
      "name": "results.confidence",
      "route": "GET /api/events/:event/results/confidence",
      "audience": "public",
      "cells": {
        "anonymous": "allow",
        "stranger": "allow",
        "founder": "allow",
        "participant": "allow",
        "judge": "allow",
        "organizer": "allow"
      }
    },
    {
      "name": "results.publish",
      "route": "POST /api/events/:event/results/publish",
      "audience": "organizer",
      "cells": {
        "anonymous": "unauthenticated",
        "stranger": "notFound",
        "founder": "notFound",
        "participant": "forbidden",
        "judge": "forbidden",
        "organizer": "allow"
      }
    },
    {
      "name": "results.unpublish",
      "route": "POST /api/events/:event/results/unpublish",
      "audience": "organizer",
      "cells": {
        "anonymous": "unauthenticated",
        "stranger": "notFound",
        "founder": "notFound",
        "participant": "forbidden",
        "judge": "forbidden",
        "organizer": "allow"
      }
    },
    {
      "name": "results.certificates",
      "route": "GET /api/events/:event/certificates",
      "audience": "organizer",
      "cells": {
        "anonymous": "unauthenticated",
        "stranger": "notFound",
        "founder": "notFound",
        "participant": "forbidden",
        "judge": "forbidden",
        "organizer": "allow"
      }
    },
    {
      "name": "results.certificate_studio",
      "route": "GET /api/events/:event/certificates/studio",
      "audience": "organizer",
      "cells": {
        "anonymous": "unauthenticated",
        "stranger": "notFound",
        "founder": "notFound",
        "participant": "forbidden",
        "judge": "forbidden",
        "organizer": "allow"
      }
    },
    {
      "name": "results.configure_certificate_template",
      "route": "POST /api/events/:event/certificates/template",
      "audience": "organizer",
      "cells": {
        "anonymous": "unauthenticated",
        "stranger": "notFound",
        "founder": "notFound",
        "participant": "forbidden",
        "judge": "forbidden",
        "organizer": "allow"
      }
    },
    {
      "name": "results.public_certificate",
      "route": "GET /api/events/:event/certificates/:serial",
      "audience": "public",
      "cells": {
        "anonymous": "allow",
        "stranger": "allow",
        "founder": "allow",
        "participant": "allow",
        "judge": "allow",
        "organizer": "allow"
      }
    },
    {
      "name": "results.issue_certs",
      "route": "POST /api/events/:event/certificates",
      "audience": "organizer",
      "cells": {
        "anonymous": "unauthenticated",
        "stranger": "notFound",
        "founder": "notFound",
        "participant": "forbidden",
        "judge": "forbidden",
        "organizer": "allow"
      }
    },
    {
      "name": "results.certificate_status",
      "route": "GET /api/events/:event/certificates/status",
      "audience": "public",
      "cells": {
        "anonymous": "allow",
        "stranger": "allow",
        "founder": "allow",
        "participant": "allow",
        "judge": "allow",
        "organizer": "allow"
      }
    },
    {
      "name": "results.correct_cert",
      "route": "POST /api/events/:event/certificates/corrections",
      "audience": "organizer",
      "cells": {
        "anonymous": "unauthenticated",
        "stranger": "notFound",
        "founder": "notFound",
        "participant": "forbidden",
        "judge": "forbidden",
        "organizer": "allow"
      }
    },
    {
      "name": "results.history",
      "route": "GET /api/events/:event/results/history",
      "audience": "public",
      "cells": {
        "anonymous": "allow",
        "stranger": "allow",
        "founder": "allow",
        "participant": "allow",
        "judge": "allow",
        "organizer": "allow"
      }
    },
    {
      "name": "results.judge_evidence",
      "route": "POST /api/events/:event/results/judge-evidence",
      "audience": "organizer",
      "cells": {
        "anonymous": "unauthenticated",
        "stranger": "notFound",
        "founder": "notFound",
        "participant": "forbidden",
        "judge": "forbidden",
        "organizer": "allow"
      }
    },
    {
      "name": "results.preflight",
      "route": "GET /api/events/:event/results/preflight",
      "audience": "organizer",
      "cells": {
        "anonymous": "unauthenticated",
        "stranger": "notFound",
        "founder": "notFound",
        "participant": "forbidden",
        "judge": "forbidden",
        "organizer": "allow"
      }
    },
    {
      "name": "results.evidence_packet",
      "route": "GET /api/events/:event/results/evidence",
      "audience": "public",
      "cells": {
        "anonymous": "allow",
        "stranger": "allow",
        "founder": "allow",
        "participant": "allow",
        "judge": "allow",
        "organizer": "allow"
      }
    },
    {
      "name": "results.explain",
      "route": "GET /api/events/:event/results/explain",
      "audience": "participant",
      "cells": {
        "anonymous": "unauthenticated",
        "stranger": "notFound",
        "founder": "notFound",
        "participant": "allow",
        "judge": "forbidden",
        "organizer": "forbidden"
      }
    },
    {
      "name": "results.sandbox",
      "route": "GET /api/events/:event/results/sandbox",
      "audience": "organizer",
      "cells": {
        "anonymous": "unauthenticated",
        "stranger": "notFound",
        "founder": "notFound",
        "participant": "forbidden",
        "judge": "forbidden",
        "organizer": "allow"
      }
    },
    {
      "name": "awards.list",
      "route": "GET /api/events/:event/awards",
      "audience": "public",
      "cells": {
        "anonymous": "allow",
        "stranger": "allow",
        "founder": "allow",
        "participant": "allow",
        "judge": "allow",
        "organizer": "allow"
      }
    },
    {
      "name": "awards.decide",
      "route": "POST /api/events/:event/awards",
      "audience": "organizer",
      "cells": {
        "anonymous": "unauthenticated",
        "stranger": "notFound",
        "founder": "notFound",
        "participant": "forbidden",
        "judge": "forbidden",
        "organizer": "allow"
      }
    },
    {
      "name": "appeals.list",
      "route": "GET /api/events/:event/appeals",
      "audience": "public",
      "cells": {
        "anonymous": "allow",
        "stranger": "allow",
        "founder": "allow",
        "participant": "allow",
        "judge": "allow",
        "organizer": "allow"
      }
    },
    {
      "name": "appeals.open",
      "route": "POST /api/events/:event/appeals",
      "audience": "participant",
      "cells": {
        "anonymous": "unauthenticated",
        "stranger": "notFound",
        "founder": "notFound",
        "participant": "allow",
        "judge": "forbidden",
        "organizer": "forbidden"
      }
    },
    {
      "name": "appeals.resolve",
      "route": "POST /api/events/:event/appeals/:appeal/resolve",
      "audience": "organizer",
      "cells": {
        "anonymous": "unauthenticated",
        "stranger": "notFound",
        "founder": "notFound",
        "participant": "forbidden",
        "judge": "forbidden",
        "organizer": "allow"
      }
    },
    {
      "name": "votes.start",
      "route": "POST /api/events/:event/votes/start",
      "audience": "public",
      "cells": {
        "anonymous": "allow",
        "stranger": "allow",
        "founder": "allow",
        "participant": "allow",
        "judge": "allow",
        "organizer": "allow"
      }
    },
    {
      "name": "votes.cast",
      "route": "POST /api/events/:event/votes",
      "audience": "public",
      "cells": {
        "anonymous": "allow",
        "stranger": "allow",
        "founder": "allow",
        "participant": "allow",
        "judge": "allow",
        "organizer": "allow"
      }
    },
    {
      "name": "votes.results",
      "route": "GET /api/events/:event/votes",
      "audience": "public",
      "cells": {
        "anonymous": "allow",
        "stranger": "allow",
        "founder": "allow",
        "participant": "allow",
        "judge": "allow",
        "organizer": "allow"
      }
    },
    {
      "name": "votes.ballot",
      "route": "GET /api/events/:event/voting",
      "audience": "public",
      "cells": {
        "anonymous": "allow",
        "stranger": "allow",
        "founder": "allow",
        "participant": "allow",
        "judge": "allow",
        "organizer": "allow"
      }
    },
    {
      "name": "votes.abuse",
      "route": "GET /api/events/:event/voting/abuse",
      "audience": "organizer",
      "cells": {
        "anonymous": "unauthenticated",
        "stranger": "notFound",
        "founder": "notFound",
        "participant": "forbidden",
        "judge": "forbidden",
        "organizer": "allow"
      }
    },
    {
      "name": "votes.configure_abuse",
      "route": "POST /api/events/:event/voting/abuse/policy",
      "audience": "organizer",
      "cells": {
        "anonymous": "unauthenticated",
        "stranger": "notFound",
        "founder": "notFound",
        "participant": "forbidden",
        "judge": "forbidden",
        "organizer": "allow"
      }
    },
    {
      "name": "votes.review_abuse",
      "route": "POST /api/events/:event/voting/abuse/review",
      "audience": "organizer",
      "cells": {
        "anonymous": "unauthenticated",
        "stranger": "notFound",
        "founder": "notFound",
        "participant": "forbidden",
        "judge": "forbidden",
        "organizer": "allow"
      }
    },
    {
      "name": "votes.discount_cluster",
      "route": "POST /api/events/:event/voting/discount",
      "audience": "organizer",
      "cells": {
        "anonymous": "unauthenticated",
        "stranger": "notFound",
        "founder": "notFound",
        "participant": "forbidden",
        "judge": "forbidden",
        "organizer": "allow"
      }
    },
    {
      "name": "votes.void_voter",
      "route": "POST /api/events/:event/voting/void",
      "audience": "organizer",
      "cells": {
        "anonymous": "unauthenticated",
        "stranger": "notFound",
        "founder": "notFound",
        "participant": "forbidden",
        "judge": "forbidden",
        "organizer": "allow"
      }
    },
    {
      "name": "exports.download",
      "route": "GET /api/events/:event/csv/:stage",
      "audience": "organizer",
      "cells": {
        "anonymous": "unauthenticated",
        "stranger": "notFound",
        "founder": "notFound",
        "participant": "forbidden",
        "judge": "forbidden",
        "organizer": "allow"
      }
    },
    {
      "name": "exports.archive_manifest",
      "route": "GET /api/events/:event/archive",
      "audience": "organizer",
      "cells": {
        "anonymous": "unauthenticated",
        "stranger": "notFound",
        "founder": "notFound",
        "participant": "forbidden",
        "judge": "forbidden",
        "organizer": "allow"
      }
    },
    {
      "name": "exports.registrations_csv",
      "route": "GET /api/events/:event/export/registrations.csv",
      "audience": "organizer",
      "cells": {
        "anonymous": "unauthenticated",
        "stranger": "notFound",
        "founder": "notFound",
        "participant": "forbidden",
        "judge": "forbidden",
        "organizer": "allow"
      }
    },
    {
      "name": "exports.teams_csv",
      "route": "GET /api/events/:event/export/teams.csv",
      "audience": "organizer",
      "cells": {
        "anonymous": "unauthenticated",
        "stranger": "notFound",
        "founder": "notFound",
        "participant": "forbidden",
        "judge": "forbidden",
        "organizer": "allow"
      }
    },
    {
      "name": "exports.projects_csv",
      "route": "GET /api/events/:event/export/projects.csv",
      "audience": "organizer",
      "cells": {
        "anonymous": "unauthenticated",
        "stranger": "notFound",
        "founder": "notFound",
        "participant": "forbidden",
        "judge": "forbidden",
        "organizer": "allow"
      }
    },
    {
      "name": "exports.scores_csv",
      "route": "GET /api/events/:event/export/scores.csv",
      "audience": "organizer",
      "cells": {
        "anonymous": "unauthenticated",
        "stranger": "notFound",
        "founder": "notFound",
        "participant": "forbidden",
        "judge": "forbidden",
        "organizer": "allow"
      }
    },
    {
      "name": "exports.results_csv",
      "route": "GET /api/events/:event/export/results.csv",
      "audience": "organizer",
      "cells": {
        "anonymous": "unauthenticated",
        "stranger": "notFound",
        "founder": "notFound",
        "participant": "forbidden",
        "judge": "forbidden",
        "organizer": "allow"
      }
    },
    {
      "name": "exports.audit_csv",
      "route": "GET /api/events/:event/export/audit.csv",
      "audience": "organizer",
      "cells": {
        "anonymous": "unauthenticated",
        "stranger": "notFound",
        "founder": "notFound",
        "participant": "forbidden",
        "judge": "forbidden",
        "organizer": "allow"
      }
    }
  ]
}
