A lexicon-driven AppView for ATProto.

refactor(scripts): bundle record-event runner args into RecordEventPayload master

`run_record_event_script` and `run_record_event_once` each took the record-event context as 6 positional arguments (nsid, action, uri, did, rkey, record). Six `&str`s in a row that the type system can't help you order — easy to swap `did` and `uri` and have it compile. Introduce a `RecordEventPayload<'a>` struct so the runner reads as run_record_event_script(state, payload).await run_record_event_once(state, &resolved, payload).await Both call sites (record_handler::handle_record_event and admin::dead_letters::retry_single) updated to construct the struct literal — names instead of positions. No behavior change. Signed-off-by: Chris Pardy <chris.pardy@gmail.com>