mirror of
https://github.com/vitorpamplona/amethyst.git
synced 2026-08-11 16:57:39 +00:00
Amethyst's podcast support (NIP-F4) and derekross/podstr use incompatible identity models: NIP-F4 makes each podcast its own keypair with regular kind:54 episodes, while the Podcasting-2.0 draft signs editable, addressable kind:30054 episodes with the human creator's key. The two cannot share a wire kind, but a client can still render them in one list. Add the Podcasting-2.0 episode (kind:30054) and trailer (kind:30055) event classes plus their tags, and introduce a spec-neutral `PodcastEpisode` abstraction (with `PodcastAudio`) that both kind:54 and kind:30054 implement. Feeds and UI can now depend on the shared interface and surface both kind sets in a single, ordered podcast/episode list. NIP-F4 remains Amethyst's publish format; this only adds read/parse support for the Podcasting-2.0 kinds. Register both new kinds in EventFactory and KindNames. Covered by round-trip, spec-example-JSON, and a unified-list test proving both kinds flow through the shared abstraction. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JGa1EM5KWyDo1o5Yr6sS18