import java.util.List;

/** Component: algo que se puede reproducir, sea una canción o una lista. */
public sealed interface Playable permits Song, Playlist {
    String title();

    int seconds();

    /** Duración total en minutos y segundos, igual para leaves y composites. */
    default String length() {
        return String.format("%d:%02d", seconds() / 60, seconds() % 60);
    }

    static Playlist playlist(String title, Playable... entries) {
        return new Playlist(title, List.of(entries));
    }
}
