Add text_to_music operation type with required prompt and optional lyrics
## Summary Add a new `text_to_music` operation type that can generate music audio from text input. The operation input should always include a `prompt`, optionally include `lyrics`, and the output should be normalized to audio file objects. ## Problem The AI module currently has operation types for text-to-speech, speech-to-text, audio-to-audio, etc., but there is no dedicated operation type for text-to-music generation. This makes provider integrations inconsistent for music-generation models (for example: no shared input contract for `prompt` + optional `lyrics`, and no standard normalized output contract for generated music). Developers and provider maintainers need a first-class operation type so base calls, event tagging, logging, and provider implementations can use a stable API. ## Proposed solution *(optional)* Introduce a new operation type in `src/OperationType/TextToMusic/` with the same shape as existing operation types: - `TextToMusicInterface` with `#[OperationType(id: 'text_to_music', ...)]` - `TextToMusicInput` implementing `InputInterface` - `TextToMusicOutput` implementing `OutputInterface` Input contract: - `prompt` (required string) - `lyrics` (optional string, nullable) Output contract: - normalized output as one or more `AudioFile` objects - raw provider response and metadata preserved similarly to other media operation outputs Implementation notes: - Reuse/create `AudioFile.php` DTO as the normalized audio carrier for this operation - Add docs in the developer base-call docs for the new operation type and usage examples - Add tests for input serialization/deserialization and output normalization parity with existing operation types ## Workaround *(optional)* Current workaround is to route music generation through less-specific operation types and provider-specific payloads, which reduces portability across providers and weakens typed contracts. ## Affected modules / components *(optional)* - ai core (`src/OperationType/*`) - provider integrations that support music generation - developer docs for base calls / operation types
issue