# Make a small, reviewable budget improvement

Start from this current source, retain `LICENSE.txt` and record its SHA-256.
The integrated Next unrecorded actual button demonstrates a bounded change:
it cycles through exact blank actuals without changing budget values. Known zero
is recorded; invalid nonblank amounts still need correction. Arithmetic, JSON
v1, CSV protection and explicit file replacement must remain intact.

The worked example and its exact historical baseline, patch, test evidence and
reproducible kit are at https://free4allhub.com/contribute/budget/. Historical
candidate descriptions refer to its pre-integration review, not current status.
Do not replace a newer Hub with the example's standalone index.html.

## Test locally

With Python 3 and Node already installed, serve this directory using
`python3 -m http.server 8000 --bind 127.0.0.1`, and visit http://127.0.0.1:8000/.
Direct file:// launch is not supported. Run `node --check core.mjs`,
`node --check app.mjs` and `node --test tests/*.test.mjs`. No install is needed.

Use fictional data. Check known zero versus blank, repeated focus and wrap,
invalid edits, adding/removing rows, canceling replacement/currency review,
keyboard focus and narrow layout. Compare saved JSON bytes before and after
navigation. Reopen a real downloaded file in a fresh tab, revise, save and reopen
again. Record browser/OS, exact outcomes and untested limits. Automated checks
do not certify accessibility, every device or financial accuracy of user inputs.

## Prepare and return

Keep source, a patch or changed-file list, original notice, accurate credit,
baseline URL/hash, test commands/results, runnable output and limits together.
State any AI assistance. Include only fictional budgets, never private finances,
credentials, browser profiles or unrelated files. Add no accounts, storage,
network requests, telemetry or data collection to this local-only workflow.

No verified public budget-specific submission endpoint, repository, issue tracker
or maintainer email is established. Keep your package locally and ask the project
owner through a channel you already trust: “Where should I send this budget patch
for review?” Do not assume the Games return route is for budget patches. There
is no upload form or automated publishing here. Review and publication remain
separate steps; preparing a package does not mean acceptance.
