A deceptively simple question: when we say “data,” what is the thing we’re pointing at? Every reference converges on “raw facts” and stops there — which is fine for a dictionary, useless for a type system.
This paper treats data as what it functionally is: a function from an index set to a value set, $D : I \to V$, made precise with explicit totality, functionality, and codomain-consistency conditions. That single move — taking the informal description seriously enough to formalize it — turns out to explain, directly and mechanically, four recurring classes of real systems bugs: implicit schema coupling, byte-level reinterpretation, unsound equality checks, and ambiguous serialization contracts. Each gets a worked example tracing the bug back to exactly which condition it violates.
The definition is checked against three established frameworks — Floridi’s General Definition of Information, Zins’ faceted classification, and the DIKW hierarchy — and shown to be compatible with, and quietly presupposed by, all three.
Full source, sections, and references are in the repository linked above; a typeset PDF will follow under Releases once the volume is built.