Epic: E3 — Wish flow and interaction UI
Type: Story
Area: Frontend
Priority: P0
Size: M
Connect the toss action to the existing Firebase storage so the wish is persisted. After storage, generate a new boat object on the water canvas. Per ARCHITECTURE.md, the storage layer is flexible for this sprint — local-only or simple demo data is acceptable. The key requirement is that the boat appears after toss and that subsequent visitors can discover wishes via boats.
Success criteria:
- Wish text is stored (locally or via Firebase) after toss
- A new boat appears on the water linked to the stored wish
- Boat position is randomised on the water surface
- Maximum visible boat count is enforced for readability
- No console errors on submit
Epic: E3 — Wish flow and interaction UI
Type: Story
Area: Frontend
Priority: P0
Size: M
Connect the toss action to the existing Firebase storage so the wish is persisted. After storage, generate a new boat object on the water canvas. Per ARCHITECTURE.md, the storage layer is flexible for this sprint — local-only or simple demo data is acceptable. The key requirement is that the boat appears after toss and that subsequent visitors can discover wishes via boats.
Success criteria: