Locking, bookings, extensions and projector power are one system, because they all run off the same reservation.
A full-screen PIN gate with your logo on it, and the booked guest already has the code.

The staff code lives on its own unlock page, so it's never typed where a guest can watch it. A whiteboard PIN at one venue stays at that venue.
Lock a bay in another city right now. Open an unlock window so a group can finish. Issue a temporary PIN that expires on its own, so the front-desk fix expires instead of becoming the code everyone knows.
Shared door codes and unlimited memberships get abused. ShotReceipt can warn — or lock — when a player who isn't on the reservation joins the round, and lets through the friend your guest adds mid-session.

A gentle warning before time is up, then the offer — bought by scanning a QR, granted by staff, or relayed to the front desk.


Bookings arrive typed in by staff, pushed by a vendor, or pulled on a schedule, and there's a published API any vendor can build against. A Booking sources page answers where this venue's bookings come from.
A league night is defined once and materialises into real bay occupancy every week, with its own series PIN. An event outranks an overlapping reservation and the superseded booking stays put — if the event moves, it takes the bay back on its own. The league itself is run from the portal too.
On ahead of the booking with a warm-up lead you set, off after a pack-up dwell, and checked: the bay confirms the projector actually reached the state and retries when it didn't. Switch one on or off by hand from the portal, or hold it off until five. The alternative operators price out is a mini-PC per location at roughly $1,000–1,500. Here it's the bay PC you already have.
If it has an API we'll talk to it. If it doesn't, agent mode probably still will.
One install per bay, on the PC that's already there.