By: Michael Lynch <git@mtlynch.io>
Share variants via embedded MediaFiles to drop type switches Splitting MediaFiles into PhotoFiles/VideoFiles forced callers to switch on MediaType just to pick an accessor, even when reading only the variants both types share (FullSize, thumbnails). Reintroduce a MediaFiles struct holding the shared variants, with a single MediaItem.MediaFiles() accessor that does the one internal type switch. PhotoFiles now embeds MediaFiles and adds only its DisplaySize field. VideoFiles was identical to the shared set, so delete it. This removes the new switches in browse.go and import-from-tinybeans; the remaining switches in media.go are behavioral (distinct template fields per type) and predate the split. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
| Time to Start | Worker time | Duration | Time to finish | |
| Config | 17s | 12s | 12s | 30s |
| Eval | 28s | 1m12s | 1m12s | 1m41s |
| Build | 39s | 7m54s | 3m04s | 3m43s |
| Suite | 17s | 9m20s | 3m26s | 3m43s |