model: take + return atproto records on Video/MediaTrack/MediaOrigin/BetaInvite master
Mirrors the ModerationDelegation/BroadcastOrigin pattern. Upsert methods now take a *streamplace.X plus the AT-URI and derive URI / CID / RepoDID from those; Get-by-URI returns the decoded record so callers don't have to round-trip through CBOR themselves. Per-list lookups still return model rows because callers need identity context the lexicon record doesn't carry. Drops Title/DurationMS off Video, TrackID/MediaType/Language off MediaTrack, Size/MimeType off MediaOrigin, RKey off all four. The only columns left are the ones we actually index by — every other field is reachable through ToRecord(). As a bonus, unindexed attributes no longer tempt callers into accidental full-table scans. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>