class Song {
  name;
  int duration;
  genre;
  int trackNum;
  * -- 1 Artist artist;
}

class Artist {
  name;
  1 -- * Album album;
}

class Album {
  name;
  Date date;
  1 -> * Song song;
}

class Playlist {
  name;
  1 -> * Song song;
}


class Room {
  name;
  int volume;
  boolean mute;
}

class Player {
  * -> 1 Song song;
  * -> 1 Room room;
  * -> 1 Album album;
  * -> 1 Playlist playlist;
}

class HAS {
  singleton;
  1 -> * Player player;
  1 -> * Room room;
  1 -> * Song song;
  1 -> * Album album;
  1 -> * Playlist playlist;
}

//$?[End_of_model]$?

class Song
{
  position 50 30 109 45;
}

class Artist
{
  position 50 130 109 45;
}

class Album
{
  position 50 230 109 45;
}

class Room
{
  position 50 330 109 45;
}

class Player
{
  position 50 430 109 45;
}

class HAS
{
  position 284 48 109 45;
  position.association HAS__Song:song 0,10 143,15;
}

class Playlist
{
  position 50 330 109 45;
}