The 4 monetary “amount” columns of a Form 8949 / Schedule D totals row: (d) proceeds, (e) cost,
(g) adjustment, (h) gain. Column (f) — the code column — has no total (a spacer), so it is absent.
One authorized SP2 write. col indexes a hand-pinned column-x cluster (None = geometry-exempt,
e.g. a wide free-text identity field); descent = (group, ordinal) for per-group strictly-
descending-y ordering (None = not in any ordered sequence); check marks a checkbox (only in the
no-unmapped scan + any same-y-pair predicate).
One Form 8275 Part I row (Rev. 10-2024): the columns btctax actually fills, keyed to a T13
Part1Item. FREE-TEXT, no money-grid clustering (arch/T15): every cell here is written via
push_free/FlatPlacement::free, not the column-x-clustered push_cell form8283/Schedule-SE use.
A dollars-field + cents-field PAIR (the 2017 Schedule SE / Form 1040 / Form 8283 split every money
amount into a whole-dollars field and a 2-digit cents field). The geometric oracle treats the pair
as ONE logical cell at the dollars-field geometry (the cents field rides along as an authorized
but geometry-exempt write). Because both fields descend from the same AcroForm root, merge_copies
(which renames only the root /T) rewrites BOTH names as a unit — so overflow is safe.
A monetary cell: a single field carrying the whole formatted amount (2024/2025), or a
dollars+cents MoneyPair (the 2017 forms). Deserializes untagged: a TOML string →
MoneyCell::Single; a TOML inline table{ dollars_field, cents_field } →
MoneyCell::Pair.
The Form 8275 map (Rev. 10-2024, embedded at compile time). ★ Form 8275 is REVISION-versioned, not
tax-year-versioned: this ONE map + its bundled PDF are aliased to EVERY SUPPORTED_YEAR — there is
no F8275_MAP_2017 / F8275_MAP_2025 (Form8275Map::for_year reuses this same parsed map,
re-stamping only the year field).
The bundled Form 8275, Rev. 10-2024 (official IRS fillable PDF, US-gov public domain). ★ Form 8275
is REVISION-versioned, not tax-year-versioned: this ONE asset is aliased to EVERY SUPPORTED_YEAR
by [f8275_pdf] — there is no separate F8275_PDF_2017 / F8275_PDF_2025.
The possible ON-state name(s) of a button widget — the /AP/N appearance keys other than
/Off (without the leading /). Read straight from the bundled PDF, so the SP2 same-y /Btn
pair oracle (the 1040 Digital-Asset Yes/No question) is map-INDEPENDENT. Empty when the widget
carries no /AP//N.
Fill the Form 1040 capital-gains cells. Returns Ok(None) — skip the whole 1040 — when there is no
reportable activity (da_yes == false). Otherwise the DA question is answered YES and line 7a is
filled per the active/line-16 rules. Read back through the geometric verifier (fails closed).
The map-parametrized fill (exposed via testonly for fault-injection KATs — mirrors
fill_schedule_se_with_map / fill_1040_with_map). Kept identity-REQUIRED (unlike
fill_form_8283’s Option) at this call surface — every existing caller (the full-return packet,
sp4.rs’s KATs) has one; the crypto-slice caller goes through [fill_form_8275_slice] instead.
Fill Form 8949 (Part I + Part II, ≤ 11 rows each) into the bundled TY2025 PDF and return the
serialized bytes. The output is read back through the geometric verifier — a mis-mapped cell or a
stray write FAILS CLOSED (no bytes returned). Pagination for > 11 rows is handled by
crate::fill_form_8949, which chunks before calling this.
Fill Form 8959 for year from the core-derived line chain. Returns Ok(None) when the form is
not required (line 18 and line 24 both zero — see the module note on why line 24 is not
redundant). Otherwise returns the serialized PDF bytes, read back through the geometric verifier
(a mis-mapped cell FAILS CLOSED).
Fill Schedule 2 from the core-derived printed chain. The serialized bytes are read back through
the geometric verifier (a mis-mapped cell FAILS CLOSED).
Fill Schedule A from the core-derived printed chain. The serialized bytes are read back through
the geometric verifier (a mis-mapped cell FAILS CLOSED).
Fill Schedule B from the core-derived printed chain. The serialized bytes are read back through
the geometric verifier (a mis-mapped cell FAILS CLOSED).
Fill Schedule C from the core-derived printed chain. The serialized bytes are read back through
the geometric verifier (a mis-mapped cell FAILS CLOSED).
Fill the FULL-RETURN Schedule D from the core-derived printed chain, including Part III’s routing.
The serialized bytes are read back through the geometric verifier (a mis-mapped cell FAILS CLOSED).
Fill Schedule D from the year’s part totals and return the serialized bytes, read back through a
geometric + no-unmapped verifier (a mis-mapped amount column fails closed).
Fill Schedule SE for year from the computed SeTaxResult, the filer’s Form W-2 Social Security
wages (w2_ss_wages, line 8a), and the year’s Social Security wage base (ss_wage_base, line 7).
Returns Ok(None) when net SE earnings are below the $400 floor (no SE tax owed — skip the
form). Otherwise returns the serialized PDF bytes, read back through the geometric verifier (a
mis-mapped cell FAILS CLOSED).
Split a money amount into (whole-dollars, 2-digit-zero-padded-cents) — the REAL formatter the
dollars+cents pairs need (fmt_money is the raw Decimal Display, which pads no cents). The value
is rounded to cents first, so 100 → ("100","00"), 45500.5 → ("45500","50"),
100.05 → ("100","05").
Map-INDEPENDENT oracle for the 1040 Digital-Asset Yes/No question: the top-most horizontally
ADJACENT page-page/Btn pair (exactly two widgets sharing a center-y, boxes ≤ [DA_PAIR_MAX_DX]
apart) whose on-states are exactly {/1,/2}. Returns (yes_fqn, no_fqn) = (LEFT member, right
member). Derived from the blank PDF’s widget geometry + appearance states, never the map.
Verify a Form 8949 fill: (1) every written value lands in the geometrically-expected column/row
band, and (2) no unmapped field carries a value. Fails closed. table_token is the per-year
data-grid subform token (Table_Line1 for 2024, Table_Line1_Part for 2025).