Files
LlamaCasty/docs/ai/decisions.md
T
gramps c72b61b61e docs(decisions): the site publishes the model, not the terms
Records the split so neither side drifts: the app repo holds the real numbers (720p30 free, $10/mo
or $400 lifetime, Store individual account) and the site holds only the promise (free forever, every
feature unlocked, a paid edition at launch).
2026-10-30 16:16:31 -07:00

109 lines
7.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Decisions log — retired paths, kept so they are not re-litigated
One dated line per decision that **no longer governs**, plus the reason it died. Read only when
you are about to re-open one of them. Live rules live in the subsystem files; this is the
graveyard with cause of death.
## Monetization
### 2026-10-30 — freemium replaces free-forever (creator ruling)
Free tier caps output at **720p30**; **$10/month** or **$400 lifetime** unlocks 1080p. Reverses the
2026-10-08 free-forever ruling below, which was a *current decision*, not an absolute.
**The website publishes the model, never the numbers** (free forever, every feature unlocked, a paid
edition at launch) — the terms may still change. The real plan is recorded internally in the site's
`build-this.md`; keep both in step when it moves.
### Superseded: free forever (2026-10-08, TASK 54)
- **2026-09-21** one-time perpetual licence `$29` founder → `$49` list — superseded 6 days later.
- **2026-09-27** `$10/mo` subscription or `$400` lifetime, **no annual**. Store revenue share was
verified at **15%** (ADA v8.10 §6(b)(i) → `$8.50` / `$340` net), including subscriptions.
- **No annual tier** because Microsoft does not pro-rate: *"monthly subscriptions and initial
(pre-renewal) purchases aren't eligible for a prorated refund"* — a first-year subscriber who
cancels loses the remaining months and the developer cannot refund it.
- **Clean numbers, no `.99`** (creator: *"Let's stop with the x.99 stuff"*). The convention exists
only to make a price look cheaper, which is incoherent for a brand sold on honesty.
- **Escalation model** (2026-09-01): the credit was deliberately obnoxious self-promo; the cadence
*is* the nagware — no modals, no feature locks, no stream-time cutoffs.
- **Pre-GA posture — preview-only flash** (reversed 2026-09-26): the credit used to render in the
preview and never on the broadcast, to keep test VODs clean. The creator ruled the free tier must
be honest advertising; it now composites into output and recordings when enabled.
- **Rejected**: always-on watermark (obscurable — replaced by the flash), hard stream-time cutoffs
(a stream dying mid-broadcast reads as broken), soft-limit nagging, freemium feature tiers,
donation-only, and any resolution/quality ceiling. Auto step-down (TASK 33) is a *protect the
stream* feature, never a monetization penalty.
- **Polar** — $50 already paid, 5% + $0.50 Starter, merchant of record. Dormant, not
deleted-in-principle: no product, org ID, key prefix or discount code exists
(`d105dfa1-…`, `c05fb364-…`, `LCYT-`, `LLAMAFOUNDER`/`LLAMA50`, the portal-validate endpoint and
the 14-day offline-grace machine are all gone). `Distribution.md` §4.2/§4.5 keeps the design.
- **Store IAP** was never implemented — `Windows.Services.Store` appears nowhere in the repo.
- ⚠️ **Two obligations any future subscription would create** (ADA §6(h)): fulfil the whole period
as marketed (breach → Microsoft may refund in full at its discretion), and **raising the price
disables auto-renew** — the launch price is effectively locked for the product's life.
## Distribution — Store route RE-OPENED 2026-10-30 (Individual account)
**2026-10-30:** the Store is the route again, via a **Microsoft Individual developer account**
(not Company), so no legal entity is needed and the publisher line shows the verified individual
name. The creator will open the account; distribution work stays parked until then. The site copy
("Coming soon to the Microsoft Store") is therefore accurate again, and the 2026-10-22
"Store is dead / direct + Steam" ruling below is superseded.
## Superseded: Store route withdrawn 2026-10-22
- **2026-09-27 Store MSIX + Store IAP decided; 2026-10-22 withdrawn.** A brand name on the
Store's *publisher* line requires a **Company** account → a registered legal entity (LLC ~$85
New Mexico with a ~2-week SOS backlog, ~$143 Wyoming). Partner Center does **not** convert an
Individual account to a Company account later, and an Individual account publishes under the
verified legal name. The creator will not fund an entity for a nameplate.
- **2026-10-22 Velopack deleted** — it downloaded and executed, which Store policy 10.2.2 forbids.
The Store was going to update the app, so that premise died with the route: **the app now has no
update path**, and `StorePackagingTests` currently asserts that no updater exists — rewrite that
guard with the chosen updater, never leave it to veto one.
- **The MSIX package still builds** (159 MB `artifacts/LlamaCasty.msix`, submitted nowhere). The
route contradiction between `ai.md`'s older text and the TASKS files is settled in one sweep at
the distribution revisit, not patched piecemeal.
- **Signing**: Microsoft removed the EV instant-bypass for SmartScreen in March 2024, so EV buys
what OV buys; the 2026-10-22 ruling is **ship unsigned** and accept the "unrecognized publisher"
warning until download reputation accrues. Deferred, not rejected.
- **Steam when $100 exists**: Steam Direct $100/product (recoupable after $1,000 AGR), categories
*Audio/Video Production* / *Player Tools* (OBS precedent), developer/publisher name self-chosen
(no entity needed), 5+ 1920×1080 screenshots + capsule art, a build Valve runs, a 2-week live
page, 30% cut.
## Product surface — retired
- **2026-09-24 StreamElements replaced by native alerts** (TASK 43). No third-party widget feed:
the chat poll *is* the event feed.
- **2026-09-01 the screens/layers settings audit** was retired into the gold pass (TASK 36 item 3)
rather than run as session debt.
- **2026-10-04 launch position**: restoring the saved position was rejected for a derived
top-left placement. The live rule is in `ui-surface.md`; the old clamp's tolerance range is why
it must not come back.
- **D3D11 swap compositor** — superseded by the software compositor (TASK 3 item 16).
- **Windows 8 / 32-bit support** — 64-bit Windows 10/11 only (creator ruling 2026-10-09).
- **"There is no v1.x"** (2026-09-01): everything queues to v1 or to *out of product,
permanently* — no feature parks "for a later version".
## Out of product — permanently
Do not build these; each was explicitly ruled out.
- D3D11 swap compositor (superseded by the software compositor).
- OBS-style source expansion — game capture, browser-source zoo, media playlist, VLC, colour-key,
MIDI. The minimal source set is deliberate; creators who need more have graduated to OBS.
- Multi-layout / profiles / presets — that is what OBS is for.
- Cross-process stream resume (impossible via the API; creator ruling 2026-09-01).
- Stream Deck / Loupedeck integration — the device sends keystrokes, and global hotkeys already
*are* the integration.
- Per-source audio sync offset — global offset shipped (TASK 22); per-source is the OBS mixer
rabbit hole and breaks the one-knob audio rule.
- Chroma key / NVIDIA-only background removal (the bundled ONNX path is the one shipped).
- Virtual camera output — a different product and a device-driver swamp; our output is one
YouTube stream.
- Replay buffer, stream clipping, multi-destination restreaming, an in-app bug reporter, and an
advanced broadcast-form tab (latency/DVR/embed/projection/CC/region are fixed at sane defaults;
every exposed field is a support ticket).