fix: #3579944 The text is not extracted from the reference fields (e.g., Paragraphs)
fix: #3619213 generateSpeech() reuses a cached URL after the local audio file was deleted
fix: #3569813 Handle OpenAI Text-to-Speech 4096 Character Limit by Splitting Long Content into Chunks
feat: #3573394 Add "Show player as field" option to enable field-based display ordering
fix: #3575202 Saving a node without text changes deletes existing TTS audio and no new audio is generated
feat: #3579445 Make node title optional