# Hi.Events Feature Map

This map uses Hi.Events as the feature checklist, not as the codebase. The goal
is to decide what must be owned by the ATM Tickets module/ATM and what should
stay public/on-protocol or app-owned. This is an ownership/design map, not a
list of released APIs. Use the current generated lexicons for supported calls;
transfers, resale, offline admission and affiliates need separately supported
contracts before an app promises them.

| Feature | ATM/Tickets-Owned | On Protocol | App-Owned |
| --- | --- | --- | --- |
| Event creation | No | `community.lexicon.calendar.event` | Event editor and organizer UX |
| RSVP | No | `community.lexicon.calendar.rsvp` | RSVP UI/social features |
| Ticket types | Hybrid | `tickets.atmosphere.ticketType` + ATM product/price refs | Ticket setup UX |
| Ticketed-event config | Yes | `tickets.atmosphere.ticketedEvent` + event/type refs | Event app setup UX |
| Paid tickets | Payment/inventory yes | Type/Product/default-Price refs | Storefront UI |
| Free scarce tickets | Issuance/check-in yes | Ticket type refs | Registration UX |
| Donation tickets | Payment yes | ATM price custom amount | App wording/UI |
| Tiered pricing | Payment/inventory yes | Price/type refs | Type display |
| Hidden tickets | Enforcement yes | Hidden types omitted from public disclosure | Reveal UX |
| Locked tickets/pre-sale | Enforcement yes | Public only if intentional | Access UX |
| Promo codes | Redemption counters yes | No codes or counters | Private promo UX |
| Add-ons | Payment/inventory if paid/scarce | ATM product/price refs | Bundling UX |
| Categories | No | Optional public category | App organization |
| Taxes/fees | ATM/payment truth | No | Display/settings UX |
| Capacity management | Yes | Summary only | Organizer UX |
| Shared limits | Yes | No public pool records | Setup UX |
| Waitlist | Hybrid | Optional public interest | Auto-offer/hold private |
| Organizer collaborations | Operational permissions + manual reconciliation intent | Optional public organizer context later | Team workflow UX |
| Checkout | ATM | Proof after payment | App can initiate/embed |
| Branding | No | No | App-owned |
| PDF ticket design | No for design, yes for ticket data | No | App-owned |
| Organizer homepage | No | Profile/event refs | App-owned |
| Page builder | No | Maybe portable blocks later | App-owned |
| Embed widget | No for UI, yes for APIs | Reads public refs | App-owned |
| SEO/Open Graph | No | No | App-owned |
| Custom questions | Answer storage private | No private form answers | App-owned UX |
| Attendee form responses | Canonical private data yes | No | App-owned presentation/support UX |
| Attendee search/export | Canonical private data yes | No | App dashboard |
| Refunds | ATM + Tickets | Status proof if useful | App action UI |
| Resend confirmations | Tickets/app | No | Email UX/templates |
| Edit attendee details | Private ticket/order state | No | App UI |
| Bulk messaging | No | No unless public posts | App-owned |
| QR check-in | Verification/status yes | No raw secrets | Scanner UX |
| Scanner grants | Yes | No | Staff management UX |
| Check-in lists | Enforcement yes | Public list metadata optional | Scanner UX |
| Scan logs | Private audit yes | No | Reporting UI |
| Access controls | Enforcement yes | Maybe role refs later | App staff UX |
| Sales dashboard | Data source yes | No | Visualizations |
| Analytics | Payment/order metrics yes | Public engagement from protocol | App dashboards |
| ATM Tickets workspace | Organizer config + scoped app operations | No | Full ticket operations |
| Unified payment ledger | ATM yes | Payment proofs after settlement | Ticket-specific display/details |
| Affiliate tracking | Attribution/payment truth yes | Public campaign refs optional | Campaign UX |
| Reports | Payment/order/tax yes | No | Export/report UX |
| Webhooks | Yes | No | Apps consume |
| Delivery logs | Tickets + ATM | No | App support UX |
| Team roles | Payment/ticket permissions yes | Optional public roles later | App team UX |
| Stripe/ATM payouts | ATM | No | Status display |
| Offline payments | Later, risky | No | App workflow only after Tickets issuance |
| Offline event support | Signed verification design yes | No secrets | Scanner cache UX |
| Invoicing | ATM/Stripe | No | App display |
| Event archive | Current organizer authority | Event status/refs | App UX |
| Multi-language | No | Maybe localized fields later | App-owned |
| API access | Tickets + ATM | XRPC where durable contract | App APIs |
| Clone events | No | Writes new refs | App-owned |
| Data export | Canonical data yes | Public records portable | Export UX |
