- accept source ids containing digits and underscores; the previous pattern dropped
openairframes_uk_caa_*.csv with no output, contradicting the documented promise that
adding a source needs no change here
- reject a file whose source column disagrees with its filename, which would otherwise
merge one registry into the union under another's label
- refuse duplicate source files, skip an empty optional source rather than aborting, and
log every skipped file and the column names shared across sources
- correct the MIN_EXPECTED_ROWS comment, which described a 35k floor for a 1000 value
Generated-by: Claude Opus 5 <noreply@anthropic.com>
- registrant_* rather than owner_*, status rather than registration_status, so both
registries describe the same concept with the same column name
- registrant_zip_code carries the Canadian postal code: a union table needs one column per
concept, not one per country's vocabulary
- set source="TC", matching the discriminator the FAA frame already carries
- raises the column names shared with the FAA frame from 9 to 21
Generated-by: Claude Opus 5 <noreply@anthropic.com>
- publish street, city, postal code and care-of, which the FAA asset already carries as
registrant_* for 99.7% of US registrants; dropping them here left one repository with
two different postures on the same class of data
- take the address from the single MAIL_RECIPIENT row rather than merging across parties,
since a co-owned mark lists several people in different cities
Generated-by: Claude Opus 5 <noreply@anthropic.com>
- reject Mode S fields that are not 24 binary digits; a short field zero-padded into a
plausible address belonging to a different aircraft
- check the "N rows selected." footer against the parsed row count and enforce a row floor,
so an upstream short export fails instead of publishing as a smaller register
- prefer ACTIVE_FLAG "A" parties but fall back to all: 1,932 Registered marks carry only "I"
rows, and those are the MAIL_RECIPIENT, so filtering on "A" alone drops real owners
- count distinct owner names rather than rows, fixing 154 marks labelled Co-owner in error
- match the spool footer by pattern instead of a brittle ragged-row count
Generated-by: Claude Opus 5 <noreply@anthropic.com>
- parse the headerless latin1 CCARCS export against its declared column layout
- derive transponder_code_hex from the 24-bit Mode S binary, populated for all 34,913 rows
- expand marks to C- and vintage CF- registrations and drop owner mailing addresses
- mirror the FAA build: same concat-with-latest-release dedup and output conventions
Generated-by: Claude Opus 5 <noreply@anthropic.com>