Problem
Indexers cannot reconstruct stream balances if event fields and timestamp or amount units change implicitly.
Objective
Deliver a production-quality improvement to create, top-up, cancel, withdraw, and pause events that creates measurable value for correctness, security, reliability, performance, or maintainability.
Implementation scope
- Define versioned event schemas with stream ID, actor, participants, amounts, status, timestamps, and outcome; document units.
Acceptance criteria
- Every lifecycle event is parseable and unambiguous; incompatible schema changes are detected by fixtures.
Required validation
- Event fixture, parser compatibility, and end-to-end emission tests.
- Existing tests and CI remain passing.
- Add regression coverage for the original failure mode.
- Do not weaken, delete, or skip unrelated tests to obtain a green build.
PR quality bar
- Keep the PR focused and explain design tradeoffs, compatibility impact, and test evidence.
- Avoid typo-only, documentation-only, cosmetic-only, or unrelated refactor submissions.
Out of scope
- Broad rewrites not required by the acceptance criteria.
- Changes to unrelated services, contracts, or user flows.
Problem
Indexers cannot reconstruct stream balances if event fields and timestamp or amount units change implicitly.
Objective
Deliver a production-quality improvement to create, top-up, cancel, withdraw, and pause events that creates measurable value for correctness, security, reliability, performance, or maintainability.
Implementation scope
Acceptance criteria
Required validation
PR quality bar
Out of scope