Greyed fields are filled in for you and submitted as shown — a hand-entered scenario has no meaningful choice about them, and nothing downstream reads them. A row with no position_pan is skipped.
position_pan
One snapshot file per snapshot. Each JSON body is exactly the S3 object — the { contract_version, date, period_start, period_end, account_settings, positions_count, control_totals, positions_snapshots } envelope the service ingests — so it can be copied straight from a bucket. A file states the cycle it closes and its own row count and sums, so a hand-edited body is refused unless they are edited with it.
{ contract_version, date, period_start, period_end, account_settings, positions_count, control_totals, positions_snapshots }
The snapshot files this service itself holds — the bucket it polls, or its local data directory. Only the names travel with the form and the service reads the objects, so this is the mode for a real snapshot file: a body big enough to matter is far past what a form field can carry. Files already taken are marked with the trigger that took them; the rest are in the source but not yet ingested.