Panti (Sanskrit paṅkti पङ्क्ति: a row, a line of things set side by side; and the metre whose verses stand in fives). A table's own logic as data, holding no data: how a column's sort direction cycles, what a typed filter mode means, which rows are chosen, and what a row's stable identity is. THE CYCLE CLOSES — null to ascending to descending to null — so three clicks on a header return the order the rows arrived in, which a two-state toggle makes unreachable. AN ABSENT VALUE IS NOT A SMALL VALUE: null and undefined sort LAST in both directions, the one asymmetry in the whole surface and the right one. Sorting is a COPY and never a mutation, and every selection act returns a new Set, so nothing a caller still holds is changed underneath it. Three filter modes and no fourth — contains, exact, startsWith, all case-folded — with a whitespace-only needle refused as no filter at all and a null cell matching nothing. A row's id is the row's OWN key where it has one, so it travels with the row through a re-order and a selected row stays selected; where the data offers no identity the fallback is positional and the water says so rather than offering an illusion. No DOM, no framework, no clock, no network, zero imports, and nothing throws.
Sanskrit पङ्क्ति (paṅkti), a row or line of things set side by side, and the name of a Vedic metre whose verses stand in fives; a table's own logic named for the line it keeps things in.
A table's own sorting and filtering logic, held as data rather than as behaviour scattered through a screen.