Check a Soundcheck import file (a UEF 2.0 document, as an object or JSON string) before importing it: the published schema (schema_version 2.x, known keys, types, required fields, phases), at least one record, every ref resolving to a record and never blank, no repeated ref, external_id or string-list entry, act names unique ignoring case, pack items carrying a non-blank name or external_id, the option vocabularies import applies (statuses, fee types — letter case and padding are forgiven), the field rules import applies (email shape, unpadded civil dates, ISO 4217 currency codes on events and ledger lines, positive ledger amounts and non-negative fees with at most two decimals, latitude and longitude ranges, plain IANA timezone names without offsets or padding), and the gig rules import applies (a ref or an inline venue/client, end_date not before event_date, multi-day gigs carry dates only, days inside the gig, HH:MM cue times). Returns valid, errors with paths such as events[0].days[1].date, missing_required paths, and schema_version. Deterministic and local — no AI, no org write, no invented fixes. Input is capped at 256 KiB.