package render import "fmt" const FormatMarkdown = "markdown" // Options configures rendering behavior across formats. type Options struct { Title string IncludeTimestamps bool IncludeSegmentIDs bool IncludeMetadata bool } // Renderer turns a normalized render model into text output. type Renderer interface { Render(transcript Transcript, opts Options) (string, error) } // Registry resolves renderers by public format name. type Registry struct { renderers map[string]Renderer } // NewRegistry returns a renderer registry with built-in renderers. func NewRegistry() Registry { return Registry{ renderers: map[string]Renderer{ FormatMarkdown: MarkdownRenderer{}, }, } } // Resolve resolves a renderer by format name. func (registry Registry) Resolve(format string) (Renderer, error) { renderer, ok := registry.renderers[format] if !ok { return nil, fmt.Errorf("unsupported --format %q", format) } return renderer, nil }