# Remix Time Receipt

Download `source.zip`, extract it, read the MIT license and follow `README.md`.
No dependency installation, account or API key is needed.

- Preserve the difference between a planner estimate, unfinished timer draft and
  self-reported finished record. Never imply attendance verification or billing.
- Keep timestamp-delta accumulation, backward-clock clamp, finite cap, explicit
  recovery choices and participant/plan locking as a coordinated state model.
- Update preset enums, translations, sharing validation and tests together.
  Sharing must exclude all typed text, outcome checks and timer metadata.
- Keep bounded input/schema validation before any state replacement. Render text
  with text APIs, never HTML. Preserve in-page replacement confirmation.
- `receiptLayout()` measures export text and footer space. Keep its pure maximum-
  content tests and actual browser PNG review when modifying type sizes or layout.
  Default output is 1,200 × 1,500; bounded growth retains long local notes.
- Change `PRODUCT.json` explicitly for any new runtime/source file. Build copies
  only the allowlist and writes the complete dependency-free source ZIP/manifest.
- The supplied default is a fictional plan. Use real product exports for campaign
  demos, preserve the estimate label, and never call them actual customer outcomes.

Core/package tests complement actual browser checks for start/pause/resume/finish,
reload recovery, import rollback, clipboard/storage failures, accessibility,
small-screen layout and complete source/PNG downloads.

## Português

Baixe e extraia o código, leia a licença MIT e siga o README. Preserve a diferença
entre estimativa, rascunho e cronômetro autodeclarado, a recuperação explícita, os
participantes fixos e a validação antes de substituir dados. Nunca inclua texto
privado em links nem trate exemplos fictícios como resultados reais de clientes.
Mudanças no recibo exigem conferir texto completo e rodapé no PNG real.
