a1f6701bac
- gRPC service with MusicBrainz provider - PostgreSQL schema with migrations - Service layer with database-first caching - Repository pattern for data access - YAML configuration support - Research documentation for 17 music metadata projects
1 line
72 KiB
XML
1 line
72 KiB
XML
<?plantuml 1.2026.2?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentStyleType="text/css" data-diagram-type="CLASS" height="1127px" preserveAspectRatio="none" style="width:2738px;height:1127px;background:#FFFFFF;" version="1.1" viewBox="0 0 2738 1127" width="2738px" zoomAndPan="magnify"><title>Music Metadata Aggregator - Internal Structure</title><defs/><g><g class="title" data-source-line="16"><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="378.1299" x="1172.9351" y="22.9951">Music Metadata Aggregator - Internal Structure</text></g><!--cluster Core Entities--><g class="cluster" data-qualified-name="Core Entities" data-source-line="22" id="ent0002"><path d="M635.5,43.2969 L738.0068,43.2969 A3.75,3.75 0 0 1 740.5068,45.7969 L747.5068,65.5938 L1548.5,65.5938 A2.5,2.5 0 0 1 1551,68.0938 L1551,685.5169 A2.5,2.5 0 0 1 1548.5,688.0169 L635.5,688.0169 A2.5,2.5 0 0 1 633,685.5169 L633,45.7969 A2.5,2.5 0 0 1 635.5,43.2969" fill="#E3F2FD" style="stroke:#DDDDDD;stroke-width:1.5;"/><line style="stroke:#DDDDDD;stroke-width:1.5;" x1="633" x2="747.5068" y1="65.5938" y2="65.5938"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="101.5068" x="637" y="58.292">Core Entities</text></g><!--cluster Relationships--><g class="cluster" data-qualified-name="Relationships" data-source-line="114" id="ent0009"><path d="M8.5,752.6069 L116.5508,752.6069 A3.75,3.75 0 0 1 119.0508,755.1069 L126.0508,774.9038 L1486.5,774.9038 A2.5,2.5 0 0 1 1489,777.4038 L1489,914.2969 A2.5,2.5 0 0 1 1486.5,916.7969 L8.5,916.7969 A2.5,2.5 0 0 1 6,914.2969 L6,755.1069 A2.5,2.5 0 0 1 8.5,752.6069" fill="#FFF3E0" style="stroke:#DDDDDD;stroke-width:1.5;"/><line style="stroke:#DDDDDD;stroke-width:1.5;" x1="6" x2="126.0508" y1="774.9038" y2="774.9038"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="107.0508" x="10" y="767.602">Relationships</text></g><!--cluster Content--><g class="cluster" data-qualified-name="Content" data-source-line="168" id="ent0017"><path d="M1515.5,712.0169 L1579.2061,712.0169 A3.75,3.75 0 0 1 1581.7061,714.5169 L1588.7061,734.3138 L1976.5,734.3138 A2.5,2.5 0 0 1 1979,736.8138 L1979,1118.0769 A2.5,2.5 0 0 1 1976.5,1120.5769 L1515.5,1120.5769 A2.5,2.5 0 0 1 1513,1118.0769 L1513,714.5169 A2.5,2.5 0 0 1 1515.5,712.0169" fill="#E8F5E9" style="stroke:#DDDDDD;stroke-width:1.5;"/><line style="stroke:#DDDDDD;stroke-width:1.5;" x1="1513" x2="1588.7061" y1="734.3138" y2="734.3138"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="62.7061" x="1517" y="727.012">Content</text></g><!--cluster External IDs--><g class="cluster" data-qualified-name="External IDs" data-source-line="208" id="ent0021"><path d="M2043.5,744.4569 L2140.4355,744.4569 A3.75,3.75 0 0 1 2142.9355,746.9569 L2149.9355,766.7538 L2728.5,766.7538 A2.5,2.5 0 0 1 2731,769.2538 L2731,922.4469 A2.5,2.5 0 0 1 2728.5,924.9469 L2043.5,924.9469 A2.5,2.5 0 0 1 2041,922.4469 L2041,746.9569 A2.5,2.5 0 0 1 2043.5,744.4569" fill="#FCE4EC" style="stroke:#DDDDDD;stroke-width:1.5;"/><line style="stroke:#DDDDDD;stroke-width:1.5;" x1="2041" x2="2149.9355" y1="766.7538" y2="766.7538"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="95.9355" x="2045" y="759.452">External IDs</text></g><!--class artists--><g class="entity" data-qualified-name="Core Entities.artists" data-source-line="23" id="ent0003"><rect fill="#F1F1F1" height="267.8594" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="204.1855" x="862.91" y="78.2969"/><ellipse cx="938.8573" cy="94.2969" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"/><path d="M942.9666,100.2969 L935.2479,100.2969 L935.2479,87.9063 L942.9666,87.9063 L942.9666,90.0625 L937.701,90.0625 L937.701,92.7344 L942.4666,92.7344 L942.4666,94.8906 L937.701,94.8906 L937.701,98.1406 L942.9666,98.1406 L942.9666,100.2969 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="43.791" x="959.3573" y="99.1436">artists</text><line style="stroke:#181818;stroke-width:0.5;" x1="863.91" x2="1066.0955" y1="110.2969" y2="110.2969"/><g data-visibility-modifier="IE_MANDATORY"><ellipse cx="873.91" cy="123.9453" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1;"/></g><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="101.001" x="882.91" y="127.292">id : UUID «PK»</text><line style="stroke:#181818;stroke-width:1;" x1="863.91" x2="1066.0955" y1="134.5938" y2="134.5938"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="88.8604" x="868.91" y="151.5889">name : TEXT</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="122.9648" x="868.91" y="167.8857">sort_name : TEXT</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="123.9287" x="868.91" y="184.1826">artist_type : TEXT</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="102.6963" x="868.91" y="200.4795">country : TEXT</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="140.3281" x="868.91" y="216.7764">formed_date : DATE</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="162.7363" x="868.91" y="233.0732">disbanded_date : DATE</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="126.998" x="868.91" y="249.3701">description : TEXT</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="118.2822" x="868.91" y="265.667">image_url : TEXT</text><line style="stroke:#181818;stroke-width:1;" x1="863.91" x2="1066.0955" y1="272.9688" y2="272.9688"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="95.9561" x="868.91" y="289.9639">source : TEXT</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="115.7324" x="868.91" y="306.2607">source_id : TEXT</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="187.6055" x="868.91" y="322.5576">created_at : TIMESTAMPTZ</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="192.1855" x="868.91" y="338.8545">updated_at : TIMESTAMPTZ</text></g><!--class works--><g class="entity" data-qualified-name="Core Entities.works" data-source-line="41" id="ent0004"><rect fill="#F1F1F1" height="186.375" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="204.1855" x="1330.91" y="119.0369"/><ellipse cx="1408.1663" cy="135.0369" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"/><path d="M1412.2757,141.0369 L1404.557,141.0369 L1404.557,128.6463 L1412.2757,128.6463 L1412.2757,130.8025 L1407.0101,130.8025 L1407.0101,133.4744 L1411.7757,133.4744 L1411.7757,135.6306 L1407.0101,135.6306 L1407.0101,138.8806 L1412.2757,138.8806 L1412.2757,141.0369 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="41.1729" x="1428.6663" y="139.8836">works</text><line style="stroke:#181818;stroke-width:0.5;" x1="1331.91" x2="1534.0955" y1="151.0369" y2="151.0369"/><g data-visibility-modifier="IE_MANDATORY"><ellipse cx="1341.91" cy="164.6853" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1;"/></g><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="101.001" x="1350.91" y="168.032">id : UUID «PK»</text><line style="stroke:#181818;stroke-width:1;" x1="1331.91" x2="1534.0955" y1="175.3338" y2="175.3338"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="76.5283" x="1336.91" y="192.3289">title : TEXT</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="121.3105" x="1336.91" y="208.6257">work_type : TEXT</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="114.3379" x="1336.91" y="224.9226">language : TEXT</text><line style="stroke:#181818;stroke-width:1;" x1="1331.91" x2="1534.0955" y1="232.2244" y2="232.2244"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="95.9561" x="1336.91" y="249.2195">source : TEXT</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="115.7324" x="1336.91" y="265.5164">source_id : TEXT</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="187.6055" x="1336.91" y="281.8132">created_at : TIMESTAMPTZ</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="192.1855" x="1336.91" y="298.1101">updated_at : TIMESTAMPTZ</text></g><!--class tracks--><g class="entity" data-qualified-name="Core Entities.tracks" data-source-line="54" id="ent0005"><rect fill="#F1F1F1" height="226.9688" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="204.1855" x="1330.91" y="420.5969"/><ellipse cx="1407.2913" cy="436.5969" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"/><path d="M1411.4007,442.5969 L1403.682,442.5969 L1403.682,430.2062 L1411.4007,430.2062 L1411.4007,432.3625 L1406.1351,432.3625 L1406.1351,435.0344 L1410.9007,435.0344 L1410.9007,437.1906 L1406.1351,437.1906 L1406.1351,440.4406 L1411.4007,440.4406 L1411.4007,442.5969 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="42.9229" x="1427.7913" y="441.4436">tracks</text><line style="stroke:#181818;stroke-width:0.5;" x1="1331.91" x2="1534.0955" y1="452.5969" y2="452.5969"/><g data-visibility-modifier="IE_MANDATORY"><ellipse cx="1341.91" cy="466.2453" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1;"/></g><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="101.001" x="1350.91" y="469.592">id : UUID «PK»</text><line style="stroke:#181818;stroke-width:1;" x1="1331.91" x2="1534.0955" y1="476.8937" y2="476.8937"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="141.4902" x="1336.91" y="493.8889">work_id : UUID «FK»</text><line style="stroke:#181818;stroke-width:1;" x1="1331.91" x2="1534.0955" y1="501.1906" y2="501.1906"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="76.5283" x="1336.91" y="518.1857">title : TEXT</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="123.6143" x="1336.91" y="534.4826">duration_ms : INT</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="73.7939" x="1336.91" y="550.7795">isrc : TEXT</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="132.5967" x="1336.91" y="567.0764">explicit : BOOLEAN</text><line style="stroke:#181818;stroke-width:1;" x1="1331.91" x2="1534.0955" y1="574.3781" y2="574.3781"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="95.9561" x="1336.91" y="591.3732">source : TEXT</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="115.7324" x="1336.91" y="607.6701">source_id : TEXT</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="187.6055" x="1336.91" y="623.967">created_at : TIMESTAMPTZ</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="192.1855" x="1336.91" y="640.2639">updated_at : TIMESTAMPTZ</text></g><!--class albums--><g class="entity" data-qualified-name="Core Entities.albums" data-source-line="70" id="ent0006"><rect fill="#F1F1F1" height="275.8594" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="204.1855" x="1096.91" y="396.1569"/><ellipse cx="1169.1727" cy="412.1569" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"/><path d="M1173.2821,418.1569 L1165.5633,418.1569 L1165.5633,405.7663 L1173.2821,405.7663 L1173.2821,407.9225 L1168.0164,407.9225 L1168.0164,410.5944 L1172.7821,410.5944 L1172.7821,412.7506 L1168.0164,412.7506 L1168.0164,416.0006 L1173.2821,416.0006 L1173.2821,418.1569 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="51.1602" x="1189.6727" y="417.0036">albums</text><line style="stroke:#181818;stroke-width:0.5;" x1="1097.91" x2="1300.0955" y1="428.1569" y2="428.1569"/><g data-visibility-modifier="IE_MANDATORY"><ellipse cx="1107.91" cy="441.8053" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1;"/></g><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="101.001" x="1116.91" y="445.152">id : UUID «PK»</text><line style="stroke:#181818;stroke-width:1;" x1="1097.91" x2="1300.0955" y1="452.4538" y2="452.4538"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="141.4697" x="1102.91" y="469.4489">label_id : UUID «FK»</text><line style="stroke:#181818;stroke-width:1;" x1="1097.91" x2="1300.0955" y1="476.7506" y2="476.7506"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="76.5283" x="1102.91" y="493.7457">title : TEXT</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="131.2979" x="1102.91" y="510.0426">album_type : TEXT</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="141.2988" x="1102.91" y="526.3395">release_date : DATE</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="74.6143" x="1102.91" y="542.6364">upc : TEXT</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="118.7061" x="1102.91" y="558.9332">total_tracks : INT</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="110.8447" x="1102.91" y="575.2301">total_discs : INT</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="113.5928" x="1102.91" y="591.527">cover_url : TEXT</text><line style="stroke:#181818;stroke-width:1;" x1="1097.91" x2="1300.0955" y1="598.8288" y2="598.8288"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="95.9561" x="1102.91" y="615.8239">source : TEXT</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="115.7324" x="1102.91" y="632.1207">source_id : TEXT</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="187.6055" x="1102.91" y="648.4176">created_at : TIMESTAMPTZ</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="192.1855" x="1102.91" y="664.7145">updated_at : TIMESTAMPTZ</text></g><!--class labels--><g class="entity" data-qualified-name="Core Entities.labels" data-source-line="89" id="ent0007"><rect fill="#F1F1F1" height="186.375" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="204.1855" x="1096.91" y="119.0369"/><ellipse cx="1174.1766" cy="135.0369" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"/><path d="M1178.286,141.0369 L1170.5672,141.0369 L1170.5672,128.6463 L1178.286,128.6463 L1178.286,130.8025 L1173.0204,130.8025 L1173.0204,133.4744 L1177.786,133.4744 L1177.786,135.6306 L1173.0204,135.6306 L1173.0204,138.8806 L1178.286,138.8806 L1178.286,141.0369 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="41.1523" x="1194.6766" y="139.8836">labels</text><line style="stroke:#181818;stroke-width:0.5;" x1="1097.91" x2="1300.0955" y1="151.0369" y2="151.0369"/><g data-visibility-modifier="IE_MANDATORY"><ellipse cx="1107.91" cy="164.6853" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1;"/></g><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="101.001" x="1116.91" y="168.032">id : UUID «PK»</text><line style="stroke:#181818;stroke-width:1;" x1="1097.91" x2="1300.0955" y1="175.3338" y2="175.3338"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="88.8604" x="1102.91" y="192.3289">name : TEXT</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="102.6963" x="1102.91" y="208.6257">country : TEXT</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="147.5674" x="1102.91" y="224.9226">founded_date : DATE</text><line style="stroke:#181818;stroke-width:1;" x1="1097.91" x2="1300.0955" y1="232.2244" y2="232.2244"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="95.9561" x="1102.91" y="249.2195">source : TEXT</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="115.7324" x="1102.91" y="265.5164">source_id : TEXT</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="187.6055" x="1102.91" y="281.8132">created_at : TIMESTAMPTZ</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="192.1855" x="1102.91" y="298.1101">updated_at : TIMESTAMPTZ</text></g><!--class genres--><g class="entity" data-qualified-name="Core Entities.genres" data-source-line="102" id="ent0008"><rect fill="#F1F1F1" height="96.8906" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="165.8086" x="649.1" y="163.7769"/><ellipse cx="703.7362" cy="179.7769" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"/><path d="M707.8456,185.7769 L700.1269,185.7769 L700.1269,173.3863 L707.8456,173.3863 L707.8456,175.5425 L702.58,175.5425 L702.58,178.2144 L707.3456,178.2144 L707.3456,180.3706 L702.58,180.3706 L702.58,183.6206 L707.8456,183.6206 L707.8456,185.7769 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="48.0361" x="724.2362" y="184.6236">genres</text><line style="stroke:#181818;stroke-width:0.5;" x1="650.1" x2="813.9086" y1="195.7769" y2="195.7769"/><g data-visibility-modifier="IE_MANDATORY"><ellipse cx="660.1" cy="209.4253" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1;"/></g><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="101.001" x="669.1" y="212.772">id : UUID «PK»</text><line style="stroke:#181818;stroke-width:1;" x1="650.1" x2="813.9086" y1="220.0738" y2="220.0738"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="88.8604" x="655.1" y="237.0689">name : TEXT</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="153.8086" x="655.1" y="253.3657">parent_id : UUID «FK»</text></g><!--class track_artists--><g class="entity" data-qualified-name="Relationships.track_artists" data-source-line="115" id="ent0010"><rect fill="#F1F1F1" height="113.1875" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="170.1084" x="1094.95" y="787.6069"/><ellipse cx="1133.2098" cy="803.6069" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"/><path d="M1137.3192,809.6069 L1129.6004,809.6069 L1129.6004,797.2163 L1137.3192,797.2163 L1137.3192,799.3725 L1132.0536,799.3725 L1132.0536,802.0444 L1136.8192,802.0444 L1136.8192,804.2006 L1132.0536,804.2006 L1132.0536,807.4506 L1137.3192,807.4506 L1137.3192,809.6069 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="86.4199" x="1152.3787" y="808.4536">track_artists</text><line style="stroke:#181818;stroke-width:0.5;" x1="1095.95" x2="1264.0584" y1="819.6069" y2="819.6069"/><g data-visibility-modifier="IE_MANDATORY"><ellipse cx="1105.95" cy="833.2553" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1;"/></g><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="143.2402" x="1114.95" y="836.602">track_id : UUID «FK»</text><g data-visibility-modifier="IE_MANDATORY"><ellipse cx="1105.95" cy="849.5522" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1;"/></g><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="144.1084" x="1114.95" y="852.8989">artist_id : UUID «FK»</text><line style="stroke:#181818;stroke-width:1;" x1="1095.95" x2="1264.0584" y1="860.2006" y2="860.2006"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="75.9814" x="1100.95" y="877.1957">role : TEXT</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="92.2236" x="1100.95" y="893.4926">position : INT</text></g><!--class album_artists--><g class="entity" data-qualified-name="Relationships.album_artists" data-source-line="123" id="ent0011"><rect fill="#F1F1F1" height="113.1875" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="177.4775" x="887.26" y="787.6069"/><ellipse cx="925.1291" cy="803.6069" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"/><path d="M929.2385,809.6069 L921.5198,809.6069 L921.5198,797.2163 L929.2385,797.2163 L929.2385,799.3725 L923.9729,799.3725 L923.9729,802.0444 L928.7385,802.0444 L928.7385,804.2006 L923.9729,804.2006 L923.9729,807.4506 L929.2385,807.4506 L929.2385,809.6069 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="94.6572" x="944.2112" y="808.4536">album_artists</text><line style="stroke:#181818;stroke-width:0.5;" x1="888.26" x2="1063.7375" y1="819.6069" y2="819.6069"/><g data-visibility-modifier="IE_MANDATORY"><ellipse cx="898.26" cy="833.2553" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1;"/></g><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="151.4775" x="907.26" y="836.602">album_id : UUID «FK»</text><g data-visibility-modifier="IE_MANDATORY"><ellipse cx="898.26" cy="849.5522" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1;"/></g><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="144.1084" x="907.26" y="852.8989">artist_id : UUID «FK»</text><line style="stroke:#181818;stroke-width:1;" x1="888.26" x2="1063.7375" y1="860.2006" y2="860.2006"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="75.9814" x="893.26" y="877.1957">role : TEXT</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="92.2236" x="893.26" y="893.4926">position : INT</text></g><!--class album_tracks--><g class="entity" data-qualified-name="Relationships.album_tracks" data-source-line="131" id="ent0012"><rect fill="#F1F1F1" height="113.1875" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="177.4775" x="1295.26" y="787.6069"/><ellipse cx="1333.5198" cy="803.6069" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"/><path d="M1337.6292,809.6069 L1329.9104,809.6069 L1329.9104,797.2163 L1337.6292,797.2163 L1337.6292,799.3725 L1332.3636,799.3725 L1332.3636,802.0444 L1337.1292,802.0444 L1337.1292,804.2006 L1332.3636,804.2006 L1332.3636,807.4506 L1337.6292,807.4506 L1337.6292,809.6069 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="93.7891" x="1352.6887" y="808.4536">album_tracks</text><line style="stroke:#181818;stroke-width:0.5;" x1="1296.26" x2="1471.7375" y1="819.6069" y2="819.6069"/><g data-visibility-modifier="IE_MANDATORY"><ellipse cx="1306.26" cy="833.2553" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1;"/></g><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="151.4775" x="1315.26" y="836.602">album_id : UUID «FK»</text><g data-visibility-modifier="IE_MANDATORY"><ellipse cx="1306.26" cy="849.5522" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1;"/></g><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="143.2402" x="1315.26" y="852.8989">track_id : UUID «FK»</text><line style="stroke:#181818;stroke-width:1;" x1="1296.26" x2="1471.7375" y1="860.2006" y2="860.2006"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="126.1777" x="1301.26" y="877.1957">disc_number : INT</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="134.0391" x="1301.26" y="893.4926">track_number : INT</text></g><!--class work_artists--><g class="entity" data-qualified-name="Relationships.work_artists" data-source-line="139" id="ent0013"><rect fill="#F1F1F1" height="96.8906" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="170.1084" x="479.95" y="795.7569"/><ellipse cx="518.9973" cy="811.7569" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"/><path d="M523.1067,817.7569 L515.3879,817.7569 L515.3879,805.3663 L523.1067,805.3663 L523.1067,807.5225 L517.8411,807.5225 L517.8411,810.1944 L522.6067,810.1944 L522.6067,812.3506 L517.8411,812.3506 L517.8411,815.6006 L523.1067,815.6006 L523.1067,817.7569 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="84.6699" x="538.3412" y="816.6036">work_artists</text><line style="stroke:#181818;stroke-width:0.5;" x1="480.95" x2="649.0584" y1="827.7569" y2="827.7569"/><g data-visibility-modifier="IE_MANDATORY"><ellipse cx="490.95" cy="841.4053" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1;"/></g><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="141.4902" x="499.95" y="844.752">work_id : UUID «FK»</text><g data-visibility-modifier="IE_MANDATORY"><ellipse cx="490.95" cy="857.7022" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1;"/></g><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="144.1084" x="499.95" y="861.0489">artist_id : UUID «FK»</text><line style="stroke:#181818;stroke-width:1;" x1="480.95" x2="649.0584" y1="868.3506" y2="868.3506"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="75.9814" x="485.95" y="885.3457">role : TEXT</text></g><!--class artist_genres--><g class="entity" data-qualified-name="Relationships.artist_genres" data-source-line="146" id="ent0014"><rect fill="#F1F1F1" height="80.5938" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="174.3535" x="21.82" y="803.9069"/><ellipse cx="59.6891" cy="819.9069" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"/><path d="M63.7985,825.9069 L56.0798,825.9069 L56.0798,813.5162 L63.7985,813.5162 L63.7985,815.6725 L58.5329,815.6725 L58.5329,818.3444 L63.2985,818.3444 L63.2985,820.5006 L58.5329,820.5006 L58.5329,823.7506 L63.7985,823.7506 L63.7985,825.9069 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="91.5332" x="78.7712" y="824.7536">artist_genres</text><line style="stroke:#181818;stroke-width:0.5;" x1="22.82" x2="195.1735" y1="835.9069" y2="835.9069"/><g data-visibility-modifier="IE_MANDATORY"><ellipse cx="32.82" cy="849.5553" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1;"/></g><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="144.1084" x="41.82" y="852.902">artist_id : UUID «FK»</text><g data-visibility-modifier="IE_MANDATORY"><ellipse cx="32.82" cy="865.8522" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1;"/></g><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="148.3535" x="41.82" y="869.1989">genre_id : UUID «FK»</text><line style="stroke:#181818;stroke-width:0.5;" x1="22.82" x2="195.1735" y1="876.5006" y2="876.5006"/></g><!--class album_genres--><g class="entity" data-qualified-name="Relationships.album_genres" data-source-line="151" id="ent0015"><rect fill="#F1F1F1" height="80.5938" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="177.4775" x="680.26" y="803.9069"/><ellipse cx="716.2188" cy="819.9069" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"/><path d="M720.3282,825.9069 L712.6095,825.9069 L712.6095,813.5162 L720.3282,813.5162 L720.3282,815.6725 L715.0626,815.6725 L715.0626,818.3444 L719.8282,818.3444 L719.8282,820.5006 L715.0626,820.5006 L715.0626,823.7506 L720.3282,823.7506 L720.3282,825.9069 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="98.9023" x="734.8764" y="824.7536">album_genres</text><line style="stroke:#181818;stroke-width:0.5;" x1="681.26" x2="856.7375" y1="835.9069" y2="835.9069"/><g data-visibility-modifier="IE_MANDATORY"><ellipse cx="691.26" cy="849.5553" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1;"/></g><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="151.4775" x="700.26" y="852.902">album_id : UUID «FK»</text><g data-visibility-modifier="IE_MANDATORY"><ellipse cx="691.26" cy="865.8522" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1;"/></g><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="148.3535" x="700.26" y="869.1989">genre_id : UUID «FK»</text><line style="stroke:#181818;stroke-width:0.5;" x1="681.26" x2="856.7375" y1="876.5006" y2="876.5006"/></g><!--class similar_artists--><g class="entity" data-qualified-name="Relationships.similar_artists" data-source-line="156" id="ent0016"><rect fill="#F1F1F1" height="96.8906" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="224.0439" x="225.98" y="795.7569"/><ellipse cx="284.8887" cy="811.7569" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"/><path d="M288.9981,817.7569 L281.2793,817.7569 L281.2793,805.3663 L288.9981,805.3663 L288.9981,807.5225 L283.7324,807.5225 L283.7324,810.1944 L288.4981,810.1944 L288.4981,812.3506 L283.7324,812.3506 L283.7324,815.6006 L288.9981,815.6006 L288.9981,817.7569 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="97.7266" x="305.3887" y="816.6036">similar_artists</text><line style="stroke:#181818;stroke-width:0.5;" x1="226.98" x2="449.0239" y1="827.7569" y2="827.7569"/><g data-visibility-modifier="IE_MANDATORY"><ellipse cx="236.98" cy="841.4053" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1;"/></g><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="144.1084" x="245.98" y="844.752">artist_id : UUID «FK»</text><g data-visibility-modifier="IE_MANDATORY"><ellipse cx="236.98" cy="857.7022" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1;"/></g><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="198.0439" x="245.98" y="861.0489">similar_artist_id : UUID «FK»</text><line style="stroke:#181818;stroke-width:1;" x1="226.98" x2="449.0239" y1="868.3506" y2="868.3506"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="87.4932" x="231.98" y="885.3457">score : REAL</text></g><!--class lyrics--><g class="entity" data-qualified-name="Content.lyrics" data-source-line="169" id="ent0018"><rect fill="#F1F1F1" height="194.375" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="199.6055" x="1529.2" y="747.0169"/><ellipse cx="1606.347" cy="763.0169" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"/><path d="M1610.4563,769.0169 L1602.7376,769.0169 L1602.7376,756.6263 L1610.4563,756.6263 L1610.4563,758.7825 L1605.1907,758.7825 L1605.1907,761.4544 L1609.9563,761.4544 L1609.9563,763.6106 L1605.1907,763.6106 L1605.1907,766.8606 L1610.4563,766.8606 L1610.4563,769.0169 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="36.8115" x="1626.847" y="767.8636">lyrics</text><line style="stroke:#181818;stroke-width:0.5;" x1="1530.2" x2="1727.8055" y1="779.0169" y2="779.0169"/><g data-visibility-modifier="IE_MANDATORY"><ellipse cx="1540.2" cy="792.6653" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1;"/></g><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="101.001" x="1549.2" y="796.012">id : UUID «PK»</text><line style="stroke:#181818;stroke-width:1;" x1="1530.2" x2="1727.8055" y1="803.3138" y2="803.3138"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="143.2402" x="1535.2" y="820.3089">track_id : UUID «FK»</text><line style="stroke:#181818;stroke-width:1;" x1="1530.2" x2="1727.8055" y1="827.6106" y2="827.6106"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="102.7578" x="1535.2" y="844.6057">content : TEXT</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="167.9795" x="1535.2" y="860.9026">synced_content : JSONB</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="114.3379" x="1535.2" y="877.1995">language : TEXT</text><line style="stroke:#181818;stroke-width:1;" x1="1530.2" x2="1727.8055" y1="884.5013" y2="884.5013"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="95.9561" x="1535.2" y="901.4964">source : TEXT</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="115.7324" x="1535.2" y="917.7932">source_id : TEXT</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="187.6055" x="1535.2" y="934.0901">created_at : TIMESTAMPTZ</text></g><!--class playlists--><g class="entity" data-qualified-name="Content.playlists" data-source-line="183" id="ent0019"><rect fill="#F1F1F1" height="170.0781" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="204.1855" x="1758.91" y="759.1669"/><ellipse cx="1828.0042" cy="775.1669" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"/><path d="M1832.1136,781.1669 L1824.3949,781.1669 L1824.3949,768.7762 L1832.1136,768.7762 L1832.1136,770.9325 L1826.848,770.9325 L1826.848,773.6044 L1831.6136,773.6044 L1831.6136,775.7606 L1826.848,775.7606 L1826.848,779.0106 L1832.1136,779.0106 L1832.1136,781.1669 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="57.4971" x="1848.5042" y="780.0136">playlists</text><line style="stroke:#181818;stroke-width:0.5;" x1="1759.91" x2="1962.0955" y1="791.1669" y2="791.1669"/><g data-visibility-modifier="IE_MANDATORY"><ellipse cx="1769.91" cy="804.8153" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1;"/></g><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="101.001" x="1778.91" y="808.162">id : UUID «PK»</text><line style="stroke:#181818;stroke-width:1;" x1="1759.91" x2="1962.0955" y1="815.4637" y2="815.4637"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="88.8604" x="1764.91" y="832.4589">name : TEXT</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="126.998" x="1764.91" y="848.7557">description : TEXT</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="142.2627" x="1764.91" y="865.0526">is_public : BOOLEAN</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="113.5928" x="1764.91" y="881.3495">cover_url : TEXT</text><line style="stroke:#181818;stroke-width:1;" x1="1759.91" x2="1962.0955" y1="888.6512" y2="888.6512"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="187.6055" x="1764.91" y="905.6464">created_at : TIMESTAMPTZ</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="192.1855" x="1764.91" y="921.9432">updated_at : TIMESTAMPTZ</text></g><!--class playlist_tracks--><g class="entity" data-qualified-name="Content.playlist_tracks" data-source-line="195" id="ent0020"><rect fill="#F1F1F1" height="113.1875" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="189.8232" x="1769.09" y="991.3869"/><ellipse cx="1810.0538" cy="1007.3869" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"/><path d="M1814.1631,1013.3869 L1806.4444,1013.3869 L1806.4444,1000.9962 L1814.1631,1000.9962 L1814.1631,1003.1525 L1808.8975,1003.1525 L1808.8975,1005.8244 L1813.6631,1005.8244 L1813.6631,1007.9806 L1808.8975,1007.9806 L1808.8975,1011.2306 L1814.1631,1011.2306 L1814.1631,1013.3869 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="100.126" x="1829.8235" y="1012.2336">playlist_tracks</text><line style="stroke:#181818;stroke-width:0.5;" x1="1770.09" x2="1957.9132" y1="1023.3869" y2="1023.3869"/><g data-visibility-modifier="IE_MANDATORY"><ellipse cx="1780.09" cy="1037.0353" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1;"/></g><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="157.8145" x="1789.09" y="1040.382">playlist_id : UUID «FK»</text><g data-visibility-modifier="IE_MANDATORY"><ellipse cx="1780.09" cy="1053.3322" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1;"/></g><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="143.2402" x="1789.09" y="1056.6789">track_id : UUID «FK»</text><line style="stroke:#181818;stroke-width:1;" x1="1770.09" x2="1957.9132" y1="1063.9806" y2="1063.9806"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="92.2236" x="1775.09" y="1080.9757">position : INT</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="177.8232" x="1775.09" y="1097.2726">added_at : TIMESTAMPTZ</text></g><!--class artist_external_ids--><g class="entity" data-qualified-name="External IDs.artist_external_ids" data-source-line="209" id="ent0022"><rect fill="#F1F1F1" height="129.4844" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="199.0723" x="2515.46" y="779.4569"/><ellipse cx="2547.7428" cy="795.4569" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"/><path d="M2551.8522,801.4569 L2544.1334,801.4569 L2544.1334,789.0663 L2551.8522,789.0663 L2551.8522,791.2225 L2546.5866,791.2225 L2546.5866,793.8944 L2551.3522,793.8944 L2551.3522,796.0506 L2546.5866,796.0506 L2546.5866,799.3006 L2551.8522,799.3006 L2551.8522,801.4569 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="128.666" x="2565.5834" y="800.3036">artist_external_ids</text><line style="stroke:#181818;stroke-width:0.5;" x1="2516.46" x2="2713.5323" y1="811.4569" y2="811.4569"/><g data-visibility-modifier="IE_MANDATORY"><ellipse cx="2526.46" cy="825.1053" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1;"/></g><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="144.1084" x="2535.46" y="828.452">artist_id : UUID «FK»</text><g data-visibility-modifier="IE_MANDATORY"><ellipse cx="2526.46" cy="841.4022" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1;"/></g><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="95.9561" x="2535.46" y="844.7489">source : TEXT</text><g data-visibility-modifier="IE_MANDATORY"><ellipse cx="2526.46" cy="857.6991" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1;"/></g><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="115.7324" x="2535.46" y="861.0457">source_id : TEXT</text><line style="stroke:#181818;stroke-width:1;" x1="2516.46" x2="2713.5323" y1="868.3475" y2="868.3475"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="67.6758" x="2521.46" y="885.3426">url : TEXT</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="187.0723" x="2521.46" y="901.6395">fetched_at : TIMESTAMPTZ</text></g><!--class album_external_ids--><g class="entity" data-qualified-name="External IDs.album_external_ids" data-source-line="218" id="ent0023"><rect fill="#F1F1F1" height="129.4844" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="199.0723" x="2057.46" y="779.4569"/><ellipse cx="2086.4267" cy="795.4569" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"/><path d="M2090.5361,801.4569 L2082.8173,801.4569 L2082.8173,789.0663 L2090.5361,789.0663 L2090.5361,791.2225 L2085.2704,791.2225 L2085.2704,793.8944 L2090.0361,793.8944 L2090.0361,796.0506 L2085.2704,796.0506 L2085.2704,799.3006 L2090.5361,799.3006 L2090.5361,801.4569 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="136.0352" x="2103.5304" y="800.3036">album_external_ids</text><line style="stroke:#181818;stroke-width:0.5;" x1="2058.46" x2="2255.5323" y1="811.4569" y2="811.4569"/><g data-visibility-modifier="IE_MANDATORY"><ellipse cx="2068.46" cy="825.1053" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1;"/></g><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="151.4775" x="2077.46" y="828.452">album_id : UUID «FK»</text><g data-visibility-modifier="IE_MANDATORY"><ellipse cx="2068.46" cy="841.4022" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1;"/></g><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="95.9561" x="2077.46" y="844.7489">source : TEXT</text><g data-visibility-modifier="IE_MANDATORY"><ellipse cx="2068.46" cy="857.6991" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1;"/></g><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="115.7324" x="2077.46" y="861.0457">source_id : TEXT</text><line style="stroke:#181818;stroke-width:1;" x1="2058.46" x2="2255.5323" y1="868.3475" y2="868.3475"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="67.6758" x="2063.46" y="885.3426">url : TEXT</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="187.0723" x="2063.46" y="901.6395">fetched_at : TIMESTAMPTZ</text></g><!--class track_external_ids--><g class="entity" data-qualified-name="External IDs.track_external_ids" data-source-line="227" id="ent0024"><rect fill="#F1F1F1" height="129.4844" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="199.0723" x="2286.46" y="779.4569"/><ellipse cx="2319.1335" cy="795.4569" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"/><path d="M2323.2429,801.4569 L2315.5241,801.4569 L2315.5241,789.0663 L2323.2429,789.0663 L2323.2429,791.2225 L2317.9772,791.2225 L2317.9772,793.8944 L2322.7429,793.8944 L2322.7429,796.0506 L2317.9772,796.0506 L2317.9772,799.3006 L2323.2429,799.3006 L2323.2429,801.4569 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="127.7979" x="2337.0609" y="800.3036">track_external_ids</text><line style="stroke:#181818;stroke-width:0.5;" x1="2287.46" x2="2484.5323" y1="811.4569" y2="811.4569"/><g data-visibility-modifier="IE_MANDATORY"><ellipse cx="2297.46" cy="825.1053" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1;"/></g><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="143.2402" x="2306.46" y="828.452">track_id : UUID «FK»</text><g data-visibility-modifier="IE_MANDATORY"><ellipse cx="2297.46" cy="841.4022" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1;"/></g><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="95.9561" x="2306.46" y="844.7489">source : TEXT</text><g data-visibility-modifier="IE_MANDATORY"><ellipse cx="2297.46" cy="857.6991" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1;"/></g><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="115.7324" x="2306.46" y="861.0457">source_id : TEXT</text><line style="stroke:#181818;stroke-width:1;" x1="2287.46" x2="2484.5323" y1="868.3475" y2="868.3475"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="67.6758" x="2292.46" y="885.3426">url : TEXT</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="187.0723" x="2292.46" y="901.6395">fetched_at : TIMESTAMPTZ</text></g><!--link works to tracks--><g class="link" data-entity-1="ent0004" data-entity-2="ent0005" data-link-type="crowfoot" data-source-line="242" id="lnk25"><path codeLine="242" d="M1467.03,313.7569 C1467.03,349.5769 1467.03,364.8369 1467.03,402.3469" fill="none" id="works-tracks" style="stroke:#181818;stroke-width:1;"/><line style="stroke:#181818;stroke-width:1;" x1="1463.03" x2="1471.03" y1="309.7569" y2="309.7569"/><line style="stroke:#181818;stroke-width:1;" x1="1463.03" x2="1471.03" y1="312.7569" y2="312.7569"/><line style="stroke:#181818;stroke-width:1;" x1="1467.03" x2="1467.03" y1="313.7569" y2="305.7569"/><line style="stroke:#181818;stroke-width:1;" x1="1467.03" x2="1473.03" y1="412.3469" y2="420.3469"/><line style="stroke:#181818;stroke-width:1;" x1="1467.03" x2="1461.03" y1="412.3469" y2="420.3469"/><line style="stroke:#181818;stroke-width:1;" x1="1467.03" x2="1467.03" y1="412.3469" y2="420.3469"/><ellipse cx="1467.03" cy="406.3469" fill="none" rx="4" ry="4" style="stroke:#181818;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="77.1621" x="1389.03" y="359.1138">recorded as</text></g><!--link albums to album_tracks--><g class="link" data-entity-1="ent0006" data-entity-2="ent0012" data-link-type="crowfoot" data-source-line="243" id="lnk26"><path codeLine="243" d="M1309.18,663.5769 C1318.2,663.5769 1316,663.5769 1316,663.5769 C1316,663.5769 1316,716.5769 1316,769.5469" fill="none" id="albums-album_tracks" style="stroke:#181818;stroke-width:1;"/><line style="stroke:#181818;stroke-width:1;" x1="1305.18" x2="1305.18" y1="667.5769" y2="659.5769"/><line style="stroke:#181818;stroke-width:1;" x1="1308.18" x2="1308.18" y1="667.5769" y2="659.5769"/><line style="stroke:#181818;stroke-width:1;" x1="1309.18" x2="1301.18" y1="663.5769" y2="663.5769"/><line style="stroke:#181818;stroke-width:1;" x1="1316" x2="1322" y1="779.5469" y2="787.5469"/><line style="stroke:#181818;stroke-width:1;" x1="1316" x2="1310" y1="779.5469" y2="787.5469"/><line style="stroke:#181818;stroke-width:1;" x1="1316" x2="1316" y1="779.5469" y2="787.5469"/><ellipse cx="1316" cy="773.5469" fill="none" rx="4" ry="4" style="stroke:#181818;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="55.0278" x="1260" y="731.2238">contains</text></g><!--link tracks to album_tracks--><g class="link" data-entity-1="ent0005" data-entity-2="ent0012" data-link-type="crowfoot" data-source-line="244" id="lnk27"><path codeLine="244" d="M1425.46,655.7969 C1425.46,703.3369 1425.46,730.4669 1425.46,769.4669" fill="none" id="tracks-album_tracks" style="stroke:#181818;stroke-width:1;"/><line style="stroke:#181818;stroke-width:1;" x1="1421.46" x2="1429.46" y1="651.7969" y2="651.7969"/><line style="stroke:#181818;stroke-width:1;" x1="1421.46" x2="1429.46" y1="654.7969" y2="654.7969"/><line style="stroke:#181818;stroke-width:1;" x1="1425.46" x2="1425.46" y1="655.7969" y2="647.7969"/><line style="stroke:#181818;stroke-width:1;" x1="1425.46" x2="1431.46" y1="779.4669" y2="787.4669"/><line style="stroke:#181818;stroke-width:1;" x1="1425.46" x2="1419.46" y1="779.4669" y2="787.4669"/><line style="stroke:#181818;stroke-width:1;" x1="1425.46" x2="1425.46" y1="779.4669" y2="787.4669"/><ellipse cx="1425.46" cy="773.4669" fill="none" rx="4" ry="4" style="stroke:#181818;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="72.8774" x="1352.46" y="713.7038">appears on</text></g><!--link labels to albums--><g class="link" data-entity-1="ent0007" data-entity-2="ent0006" data-link-type="crowfoot" data-source-line="245" id="lnk28"><path codeLine="245" d="M1199,313.7569 C1199,341.8669 1199,347.3469 1199,377.7169" fill="none" id="labels-albums" style="stroke:#181818;stroke-width:1;"/><line style="stroke:#181818;stroke-width:1;" x1="1195" x2="1203" y1="309.7569" y2="309.7569"/><line style="stroke:#181818;stroke-width:1;" x1="1195" x2="1203" y1="312.7569" y2="312.7569"/><line style="stroke:#181818;stroke-width:1;" x1="1199" x2="1199" y1="313.7569" y2="305.7569"/><line style="stroke:#181818;stroke-width:1;" x1="1199" x2="1205" y1="387.7169" y2="395.7169"/><line style="stroke:#181818;stroke-width:1;" x1="1199" x2="1193" y1="387.7169" y2="395.7169"/><line style="stroke:#181818;stroke-width:1;" x1="1199" x2="1199" y1="387.7169" y2="395.7169"/><ellipse cx="1199" cy="381.7169" fill="none" rx="4" ry="4" style="stroke:#181818;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="76.0195" x="1122" y="346.8038">released by</text></g><!--link genres to genres--><g class="link" data-entity-1="ent0008" data-entity-2="ent0008" data-link-type="crowfoot" data-source-line="246" id="lnk29"><path codeLine="246" d="M732,155.4469 C732,133.5669 732,120.5769 732,120.5769 C732,120.5769 843.46,120.5769 843.46,120.5769 C843.46,120.5769 843.46,281.5769 843.46,281.5769 C843.46,281.5769 770.02,281.5769 770.02,281.5769 C770.02,281.5769 770.02,290.6169 770.02,279.1469" fill="none" id="genres-genres" style="stroke:#181818;stroke-width:1;"/><line style="stroke:#181818;stroke-width:1;" x1="736" x2="728" y1="159.4469" y2="159.4469"/><line style="stroke:#181818;stroke-width:1;" x1="736" x2="728" y1="156.4469" y2="156.4469"/><line style="stroke:#181818;stroke-width:1;" x1="732" x2="732" y1="155.4469" y2="163.4469"/><line style="stroke:#181818;stroke-width:1;" x1="770.02" x2="764.02" y1="269.1469" y2="261.1469"/><line style="stroke:#181818;stroke-width:1;" x1="770.02" x2="776.02" y1="269.1469" y2="261.1469"/><line style="stroke:#181818;stroke-width:1;" x1="770.02" x2="770.02" y1="269.1469" y2="261.1469"/><ellipse cx="770.02" cy="275.1469" fill="none" rx="4" ry="4" style="stroke:#181818;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="42.8975" x="795.46" y="161.9138">parent</text></g><!--link artists to track_artists--><g class="link" data-entity-1="ent0003" data-entity-2="ent0010" data-link-type="crowfoot" data-source-line="249" id="lnk30"><path codeLine="249" d="M1075.25,332.5769 C1083.66,332.5769 1081.02,332.5769 1081.02,332.5769 C1081.02,332.5769 1081.02,844.5769 1081.02,844.5769 C1081.02,844.5769 1068.46,844.5769 1076.78,844.5769" fill="none" id="artists-track_artists" style="stroke:#181818;stroke-width:1;"/><line style="stroke:#181818;stroke-width:1;" x1="1071.25" x2="1071.25" y1="336.5769" y2="328.5769"/><line style="stroke:#181818;stroke-width:1;" x1="1074.25" x2="1074.25" y1="336.5769" y2="328.5769"/><line style="stroke:#181818;stroke-width:1;" x1="1075.25" x2="1067.25" y1="332.5769" y2="332.5769"/><line style="stroke:#181818;stroke-width:1;" x1="1086.78" x2="1094.78" y1="844.5769" y2="838.5769"/><line style="stroke:#181818;stroke-width:1;" x1="1086.78" x2="1094.78" y1="844.5769" y2="850.5769"/><line style="stroke:#181818;stroke-width:1;" x1="1086.78" x2="1094.78" y1="844.5769" y2="844.5769"/><ellipse cx="1080.78" cy="844.5769" fill="none" rx="4" ry="4" style="stroke:#181818;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="4.1323" x="1076.02" y="584.6438"> </text></g><!--link tracks to track_artists--><g class="link" data-entity-1="ent0005" data-entity-2="ent0010" data-link-type="crowfoot" data-source-line="250" id="lnk31"><path codeLine="250" d="M1378.18,655.7069 C1378.18,689.4469 1378.18,709.5769 1378.18,709.5769 C1378.18,709.5769 1180.98,709.5769 1180.98,709.5769 C1180.98,709.5769 1180.98,732.4169 1180.98,769.1069" fill="none" id="tracks-track_artists" style="stroke:#181818;stroke-width:1;"/><line style="stroke:#181818;stroke-width:1;" x1="1374.18" x2="1382.18" y1="651.7069" y2="651.7069"/><line style="stroke:#181818;stroke-width:1;" x1="1374.18" x2="1382.18" y1="654.7069" y2="654.7069"/><line style="stroke:#181818;stroke-width:1;" x1="1378.18" x2="1378.18" y1="655.7069" y2="647.7069"/><line style="stroke:#181818;stroke-width:1;" x1="1180.98" x2="1186.98" y1="779.1069" y2="787.1069"/><line style="stroke:#181818;stroke-width:1;" x1="1180.98" x2="1174.98" y1="779.1069" y2="787.1069"/><line style="stroke:#181818;stroke-width:1;" x1="1180.98" x2="1180.98" y1="779.1069" y2="787.1069"/><ellipse cx="1180.98" cy="773.1069" fill="none" rx="4" ry="4" style="stroke:#181818;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="4.1323" x="1266.75" y="705.6438"> </text></g><!--link artists to album_artists--><g class="link" data-entity-1="ent0003" data-entity-2="ent0011" data-link-type="crowfoot" data-source-line="251" id="lnk32"><path codeLine="251" d="M946.42,354.6369 C946.42,491.2669 946.42,670.4569 946.42,769.1669" fill="none" id="artists-album_artists" style="stroke:#181818;stroke-width:1;"/><line style="stroke:#181818;stroke-width:1;" x1="942.42" x2="950.42" y1="350.6369" y2="350.6369"/><line style="stroke:#181818;stroke-width:1;" x1="942.42" x2="950.42" y1="353.6369" y2="353.6369"/><line style="stroke:#181818;stroke-width:1;" x1="946.42" x2="946.42" y1="354.6369" y2="346.6369"/><line style="stroke:#181818;stroke-width:1;" x1="946.42" x2="952.42" y1="779.1669" y2="787.1669"/><line style="stroke:#181818;stroke-width:1;" x1="946.42" x2="940.42" y1="779.1669" y2="787.1669"/><line style="stroke:#181818;stroke-width:1;" x1="946.42" x2="946.42" y1="779.1669" y2="787.1669"/><ellipse cx="946.42" cy="773.1669" fill="none" rx="4" ry="4" style="stroke:#181818;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="4.1323" x="941.42" y="562.9638"> </text></g><!--link albums to album_artists--><g class="link" data-entity-1="ent0006" data-entity-2="ent0011" data-link-type="crowfoot" data-source-line="252" id="lnk33"><path codeLine="252" d="M1088.63,579.5769 C1042.23,579.5769 1005.58,579.5769 1005.58,579.5769 C1005.58,579.5769 1005.58,691.6769 1005.58,769.4369" fill="none" id="albums-album_artists" style="stroke:#181818;stroke-width:1;"/><line style="stroke:#181818;stroke-width:1;" x1="1092.63" x2="1092.63" y1="575.5769" y2="583.5769"/><line style="stroke:#181818;stroke-width:1;" x1="1089.63" x2="1089.63" y1="575.5769" y2="583.5769"/><line style="stroke:#181818;stroke-width:1;" x1="1088.63" x2="1096.63" y1="579.5769" y2="579.5769"/><line style="stroke:#181818;stroke-width:1;" x1="1005.58" x2="1011.58" y1="779.4369" y2="787.4369"/><line style="stroke:#181818;stroke-width:1;" x1="1005.58" x2="999.58" y1="779.4369" y2="787.4369"/><line style="stroke:#181818;stroke-width:1;" x1="1005.58" x2="1005.58" y1="779.4369" y2="787.4369"/><ellipse cx="1005.58" cy="773.4369" fill="none" rx="4" ry="4" style="stroke:#181818;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="4.1323" x="1000.58" y="634.0438"> </text></g><!--link artists to work_artists--><g class="link" data-entity-1="ent0003" data-entity-2="ent0013" data-link-type="crowfoot" data-source-line="253" id="lnk34"><path codeLine="253" d="M875.08,354.6069 C875.08,527.9869 875.08,799.5769 875.08,799.5769 C875.08,799.5769 760.34,799.5769 668.55,799.5769" fill="none" id="artists-work_artists" style="stroke:#181818;stroke-width:1;"/><line style="stroke:#181818;stroke-width:1;" x1="871.08" x2="879.08" y1="350.6069" y2="350.6069"/><line style="stroke:#181818;stroke-width:1;" x1="871.08" x2="879.08" y1="353.6069" y2="353.6069"/><line style="stroke:#181818;stroke-width:1;" x1="875.08" x2="875.08" y1="354.6069" y2="346.6069"/><line style="stroke:#181818;stroke-width:1;" x1="658.55" x2="650.55" y1="799.5769" y2="805.5769"/><line style="stroke:#181818;stroke-width:1;" x1="658.55" x2="650.55" y1="799.5769" y2="793.5769"/><line style="stroke:#181818;stroke-width:1;" x1="658.55" x2="650.55" y1="799.5769" y2="799.5769"/><ellipse cx="664.55" cy="799.5769" fill="none" rx="4" ry="4" style="stroke:#181818;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="4.1323" x="870.08" y="681.4238"> </text></g><!--link works to work_artists--><g class="link" data-entity-1="ent0004" data-entity-2="ent0013" data-link-type="crowfoot" data-source-line="254" id="lnk35"><path codeLine="254" d="M1398.97,313.8469 C1398.97,348.5269 1398.97,371.5769 1398.97,371.5769 C1398.97,371.5769 564.52,371.5769 564.52,371.5769 C564.52,371.5769 564.52,656.6469 564.52,777.4069" fill="none" id="works-work_artists" style="stroke:#181818;stroke-width:1;"/><line style="stroke:#181818;stroke-width:1;" x1="1394.97" x2="1402.97" y1="309.8469" y2="309.8469"/><line style="stroke:#181818;stroke-width:1;" x1="1394.97" x2="1402.97" y1="312.8469" y2="312.8469"/><line style="stroke:#181818;stroke-width:1;" x1="1398.97" x2="1398.97" y1="313.8469" y2="305.8469"/><line style="stroke:#181818;stroke-width:1;" x1="564.52" x2="570.52" y1="787.4069" y2="795.4069"/><line style="stroke:#181818;stroke-width:1;" x1="564.52" x2="558.52" y1="787.4069" y2="795.4069"/><line style="stroke:#181818;stroke-width:1;" x1="564.52" x2="564.52" y1="787.4069" y2="795.4069"/><ellipse cx="564.52" cy="781.4069" fill="none" rx="4" ry="4" style="stroke:#181818;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="4.1323" x="797.7" y="367.6438"> </text></g><!--link artists to artist_genres--><g class="link" data-entity-1="ent0003" data-entity-2="ent0014" data-link-type="crowfoot" data-source-line="257" id="lnk36"><path codeLine="257" d="M854.77,303.5769 C633.52,303.5769 138.06,303.5769 138.06,303.5769 C138.06,303.5769 138.06,659.8369 138.06,785.5669" fill="none" id="artists-artist_genres" style="stroke:#181818;stroke-width:1;"/><line style="stroke:#181818;stroke-width:1;" x1="858.77" x2="858.77" y1="299.5769" y2="307.5769"/><line style="stroke:#181818;stroke-width:1;" x1="855.77" x2="855.77" y1="299.5769" y2="307.5769"/><line style="stroke:#181818;stroke-width:1;" x1="854.77" x2="862.77" y1="303.5769" y2="303.5769"/><line style="stroke:#181818;stroke-width:1;" x1="138.06" x2="144.06" y1="795.5669" y2="803.5669"/><line style="stroke:#181818;stroke-width:1;" x1="138.06" x2="132.06" y1="795.5669" y2="803.5669"/><line style="stroke:#181818;stroke-width:1;" x1="138.06" x2="138.06" y1="795.5669" y2="803.5669"/><ellipse cx="138.06" cy="789.5669" fill="none" rx="4" ry="4" style="stroke:#181818;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="4.1323" x="245.42" y="299.6438"> </text></g><!--link genres to artist_genres--><g class="link" data-entity-1="ent0008" data-entity-2="ent0014" data-link-type="crowfoot" data-source-line="258" id="lnk37"><path codeLine="258" d="M640.75,212.5769 C464.97,212.5769 79.94,212.5769 79.94,212.5769 C79.94,212.5769 79.94,646.3269 79.94,785.7269" fill="none" id="genres-artist_genres" style="stroke:#181818;stroke-width:1;"/><line style="stroke:#181818;stroke-width:1;" x1="644.75" x2="644.75" y1="208.5769" y2="216.5769"/><line style="stroke:#181818;stroke-width:1;" x1="641.75" x2="641.75" y1="208.5769" y2="216.5769"/><line style="stroke:#181818;stroke-width:1;" x1="640.75" x2="648.75" y1="212.5769" y2="212.5769"/><line style="stroke:#181818;stroke-width:1;" x1="79.94" x2="85.94" y1="795.7269" y2="803.7269"/><line style="stroke:#181818;stroke-width:1;" x1="79.94" x2="73.94" y1="795.7269" y2="803.7269"/><line style="stroke:#181818;stroke-width:1;" x1="79.94" x2="79.94" y1="795.7269" y2="803.7269"/><ellipse cx="79.94" cy="789.7269" fill="none" rx="4" ry="4" style="stroke:#181818;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="4.1323" x="74.94" y="219.8138"> </text></g><!--link albums to album_genres--><g class="link" data-entity-1="ent0006" data-entity-2="ent0015" data-link-type="crowfoot" data-source-line="259" id="lnk38"><path codeLine="259" d="M1088.48,488.5769 C979.03,488.5769 829.18,488.5769 829.18,488.5769 C829.18,488.5769 829.18,691.9969 829.18,785.4069" fill="none" id="albums-album_genres" style="stroke:#181818;stroke-width:1;"/><line style="stroke:#181818;stroke-width:1;" x1="1092.48" x2="1092.48" y1="484.5769" y2="492.5769"/><line style="stroke:#181818;stroke-width:1;" x1="1089.48" x2="1089.48" y1="484.5769" y2="492.5769"/><line style="stroke:#181818;stroke-width:1;" x1="1088.48" x2="1096.48" y1="488.5769" y2="488.5769"/><line style="stroke:#181818;stroke-width:1;" x1="829.18" x2="835.18" y1="795.4069" y2="803.4069"/><line style="stroke:#181818;stroke-width:1;" x1="829.18" x2="823.18" y1="795.4069" y2="803.4069"/><line style="stroke:#181818;stroke-width:1;" x1="829.18" x2="829.18" y1="795.4069" y2="803.4069"/><ellipse cx="829.18" cy="789.4069" fill="none" rx="4" ry="4" style="stroke:#181818;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="4.1323" x="824.18" y="508.4138"> </text></g><!--link genres to album_genres--><g class="link" data-entity-1="ent0008" data-entity-2="ent0015" data-link-type="crowfoot" data-source-line="260" id="lnk39"><path codeLine="260" d="M725.14,269.0269 C725.14,389.6169 725.14,673.9269 725.14,785.4869" fill="none" id="genres-album_genres" style="stroke:#181818;stroke-width:1;"/><line style="stroke:#181818;stroke-width:1;" x1="721.14" x2="729.14" y1="265.0269" y2="265.0269"/><line style="stroke:#181818;stroke-width:1;" x1="721.14" x2="729.14" y1="268.0269" y2="268.0269"/><line style="stroke:#181818;stroke-width:1;" x1="725.14" x2="725.14" y1="269.0269" y2="261.0269"/><line style="stroke:#181818;stroke-width:1;" x1="725.14" x2="731.14" y1="795.4869" y2="803.4869"/><line style="stroke:#181818;stroke-width:1;" x1="725.14" x2="719.14" y1="795.4869" y2="803.4869"/><line style="stroke:#181818;stroke-width:1;" x1="725.14" x2="725.14" y1="795.4869" y2="803.4869"/><ellipse cx="725.14" cy="789.4869" fill="none" rx="4" ry="4" style="stroke:#181818;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="4.1323" x="720.14" y="528.3238"> </text></g><!--link artists to similar_artists--><g class="link" data-entity-1="ent0003" data-entity-2="ent0016" data-link-type="crowfoot" data-source-line="263" id="lnk40"><path codeLine="263" d="M854.52,324.5769 C676.74,324.5769 338,324.5769 338,324.5769 C338,324.5769 338,647.9669 338,777.3169" fill="none" id="artists-similar_artists" style="stroke:#181818;stroke-width:1;"/><line style="stroke:#181818;stroke-width:1;" x1="858.52" x2="858.52" y1="320.5769" y2="328.5769"/><line style="stroke:#181818;stroke-width:1;" x1="855.52" x2="855.52" y1="320.5769" y2="328.5769"/><line style="stroke:#181818;stroke-width:1;" x1="854.52" x2="862.52" y1="324.5769" y2="324.5769"/><line style="stroke:#181818;stroke-width:1;" x1="338" x2="344" y1="787.3169" y2="795.3169"/><line style="stroke:#181818;stroke-width:1;" x1="338" x2="332" y1="787.3169" y2="795.3169"/><line style="stroke:#181818;stroke-width:1;" x1="338" x2="338" y1="787.3169" y2="795.3169"/><ellipse cx="338" cy="781.3169" fill="none" rx="4" ry="4" style="stroke:#181818;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="4.1323" x="359.89" y="320.6438"> </text></g><!--link tracks to lyrics--><g class="link" data-entity-1="ent0005" data-entity-2="ent0018" data-link-type="association" data-source-line="266" id="lnk41"><path codeLine="266" d="M1510.38,655.7569 C1510.38,715.1369 1510.38,767.5769 1510.38,767.5769 C1510.38,767.5769 1502.79,767.5769 1513.91,767.5769" fill="none" id="tracks-lyrics" style="stroke:#181818;stroke-width:1;"/><line style="stroke:#181818;stroke-width:1;" x1="1506.38" x2="1514.38" y1="651.7569" y2="651.7569"/><line style="stroke:#181818;stroke-width:1;" x1="1506.38" x2="1514.38" y1="654.7569" y2="654.7569"/><line style="stroke:#181818;stroke-width:1;" x1="1510.38" x2="1510.38" y1="655.7569" y2="647.7569"/><line style="stroke:#181818;stroke-width:1;" x1="1517.91" x2="1528.91" y1="767.5769" y2="767.5769"/><ellipse cx="1517.91" cy="767.5769" fill="none" rx="4" ry="4" style="stroke:#181818;stroke-width:1;"/><line style="stroke:#181818;stroke-width:1;" x1="1524.91" x2="1524.91" y1="763.5769" y2="771.5769"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="22.9785" x="1487.38" y="713.0038">has</text></g><!--link playlists to playlist_tracks--><g class="link" data-entity-1="ent0019" data-entity-2="ent0020" data-link-type="crowfoot" data-source-line="267" id="lnk42"><path codeLine="267" d="M1864,937.7369 C1864,958.4369 1864,954.0469 1864,973.0569" fill="none" id="playlists-playlist_tracks" style="stroke:#181818;stroke-width:1;"/><line style="stroke:#181818;stroke-width:1;" x1="1860" x2="1868" y1="933.7369" y2="933.7369"/><line style="stroke:#181818;stroke-width:1;" x1="1860" x2="1868" y1="936.7369" y2="936.7369"/><line style="stroke:#181818;stroke-width:1;" x1="1864" x2="1864" y1="937.7369" y2="929.7369"/><line style="stroke:#181818;stroke-width:1;" x1="1864" x2="1870" y1="983.0569" y2="991.0569"/><line style="stroke:#181818;stroke-width:1;" x1="1864" x2="1858" y1="983.0569" y2="991.0569"/><line style="stroke:#181818;stroke-width:1;" x1="1864" x2="1864" y1="983.0569" y2="991.0569"/><ellipse cx="1864" cy="977.0569" fill="none" rx="4" ry="4" style="stroke:#181818;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="4.1323" x="1859" y="956.4638"> </text></g><!--link tracks to playlist_tracks--><g class="link" data-entity-1="ent0005" data-entity-2="ent0020" data-link-type="crowfoot" data-source-line="268" id="lnk43"><path codeLine="268" d="M1491.56,656.0469 C1491.56,807.3269 1491.56,1047.5769 1491.56,1047.5769 C1491.56,1047.5769 1640.71,1047.5769 1751.05,1047.5769" fill="none" id="tracks-playlist_tracks" style="stroke:#181818;stroke-width:1;"/><line style="stroke:#181818;stroke-width:1;" x1="1487.56" x2="1495.56" y1="652.0469" y2="652.0469"/><line style="stroke:#181818;stroke-width:1;" x1="1487.56" x2="1495.56" y1="655.0469" y2="655.0469"/><line style="stroke:#181818;stroke-width:1;" x1="1491.56" x2="1491.56" y1="656.0469" y2="648.0469"/><line style="stroke:#181818;stroke-width:1;" x1="1761.05" x2="1769.05" y1="1047.5769" y2="1041.5769"/><line style="stroke:#181818;stroke-width:1;" x1="1761.05" x2="1769.05" y1="1047.5769" y2="1053.5769"/><line style="stroke:#181818;stroke-width:1;" x1="1761.05" x2="1769.05" y1="1047.5769" y2="1047.5769"/><ellipse cx="1755.05" cy="1047.5769" fill="none" rx="4" ry="4" style="stroke:#181818;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="4.1323" x="1486.56" y="982.6238"> </text></g><!--link artists to artist_external_ids--><g class="link" data-entity-1="ent0003" data-entity-2="ent0022" data-link-type="crowfoot" data-source-line="271" id="lnk44"><path codeLine="271" d="M1075.59,318.5769 C1436.07,318.5769 2615,318.5769 2615,318.5769 C2615,318.5769 2615,620.5869 2615,761.2269" fill="none" id="artists-artist_external_ids" style="stroke:#181818;stroke-width:1;"/><line style="stroke:#181818;stroke-width:1;" x1="1071.59" x2="1071.59" y1="322.5769" y2="314.5769"/><line style="stroke:#181818;stroke-width:1;" x1="1074.59" x2="1074.59" y1="322.5769" y2="314.5769"/><line style="stroke:#181818;stroke-width:1;" x1="1075.59" x2="1067.59" y1="318.5769" y2="318.5769"/><line style="stroke:#181818;stroke-width:1;" x1="2615" x2="2621" y1="771.2269" y2="779.2269"/><line style="stroke:#181818;stroke-width:1;" x1="2615" x2="2609" y1="771.2269" y2="779.2269"/><line style="stroke:#181818;stroke-width:1;" x1="2615" x2="2615" y1="771.2269" y2="779.2269"/><ellipse cx="2615" cy="765.2269" fill="none" rx="4" ry="4" style="stroke:#181818;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="4.1323" x="2066.62" y="314.6438"> </text></g><!--link albums to album_external_ids--><g class="link" data-entity-1="ent0006" data-entity-2="ent0023" data-link-type="crowfoot" data-source-line="272" id="lnk45"><path codeLine="272" d="M1309.52,655.5769 C1556.66,655.5769 2157,655.5769 2157,655.5769 C2157,655.5769 2157,706.5069 2157,761.0269" fill="none" id="albums-album_external_ids" style="stroke:#181818;stroke-width:1;"/><line style="stroke:#181818;stroke-width:1;" x1="1305.52" x2="1305.52" y1="659.5769" y2="651.5769"/><line style="stroke:#181818;stroke-width:1;" x1="1308.52" x2="1308.52" y1="659.5769" y2="651.5769"/><line style="stroke:#181818;stroke-width:1;" x1="1309.52" x2="1301.52" y1="655.5769" y2="655.5769"/><line style="stroke:#181818;stroke-width:1;" x1="2157" x2="2163" y1="771.0269" y2="779.0269"/><line style="stroke:#181818;stroke-width:1;" x1="2157" x2="2151" y1="771.0269" y2="779.0269"/><line style="stroke:#181818;stroke-width:1;" x1="2157" x2="2157" y1="771.0269" y2="779.0269"/><ellipse cx="2157" cy="765.0269" fill="none" rx="4" ry="4" style="stroke:#181818;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="4.1323" x="1785.98" y="651.6438"> </text></g><!--link tracks to track_external_ids--><g class="link" data-entity-1="ent0005" data-entity-2="ent0024" data-link-type="crowfoot" data-source-line="273" id="lnk46"><path codeLine="273" d="M1543.44,534.5769 C1789.58,534.5769 2386,534.5769 2386,534.5769 C2386,534.5769 2386,670.5069 2386,761.2969" fill="none" id="tracks-track_external_ids" style="stroke:#181818;stroke-width:1;"/><line style="stroke:#181818;stroke-width:1;" x1="1539.44" x2="1539.44" y1="538.5769" y2="530.5769"/><line style="stroke:#181818;stroke-width:1;" x1="1542.44" x2="1542.44" y1="538.5769" y2="530.5769"/><line style="stroke:#181818;stroke-width:1;" x1="1543.44" x2="1535.44" y1="534.5769" y2="534.5769"/><line style="stroke:#181818;stroke-width:1;" x1="2386" x2="2392" y1="771.2969" y2="779.2969"/><line style="stroke:#181818;stroke-width:1;" x1="2386" x2="2380" y1="771.2969" y2="779.2969"/><line style="stroke:#181818;stroke-width:1;" x1="2386" x2="2386" y1="771.2969" y2="779.2969"/><ellipse cx="2386" cy="765.2969" fill="none" rx="4" ry="4" style="stroke:#181818;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="4.1323" x="2078.08" y="530.6438"> </text></g><?plantuml-src tLbHRzis47xNho2SXwq130JB2hH5KK2nvKvRR0UsWXLz4MY9jGdBf41IQuoc_s4l-uFx9ID5MPCeodOyOucjv27b7Ozt7u_7xrY-n2I53Av0WWaIwnG1oiI2EhmKC4YM7ANWzLLbaD0OgS7hAwSoYeZ0OWs-EK1-Dp1QpXdDIDoZ2MNWzmKMI4ieYn7JenVN-UTyhzf9vLGuHos6BWQk-ccQwkUVCYNTI10OPXn7O8W4ZA60m9tF6Pf38LMxm2S2CG8JC1KiYqJ6aEFy0Fx-wyyJ_PNEzyOJ3mplftuFUAF03tnlUjeXEPiywFGeGy1JsOKHxu0Bxthmqw1Vv4UHTHt81EP2YlMm-Yu1Zi4xS7_lzy7xztU_VVXGYhhTyay2LqXg1Twde1pZyXY4De5U9SoFYY6AP8uAjZQ7lr2sGd4eSr3DwBk1LufYp6UGn6rIn2E6Ku4fCMtYbSGbp5XY2YfXSPgno1AO6WrpNEhUCoHzY4CebCGVUjF07Tu5dqk5B8tR5UIXg-x5LygM1-o4FhU6OygM5Uy4adccykDbOY2OJDy3GCZZhIeEde9Md36eCYPSSIdoHvMSuImojT53ck08gsXknkDRpnszD1HXCijM1w2Om1bA3eSnNzQQTGmb279aFR5Psa1OK06JKEU2iI5Q96j0P4eY-WTYB_Xuv-0UgTAsLisijJ2-41JcY31q91GayP5cxVdwNL6Q4oSd4-_M3VpnQFgBVtSsj6I2ahpMyWLE5IqP30RNtfL1I_AZ7rh9YHQrrgZB3TdOfuensYnYAUMuO0-RwcAhhdRdjEZvdRDTepjzsu5inJLLVaEIhMQ8cUKvjz4GMPYE7S3jz_X_miy4IbkorQDTYro2V5PRuR7iXtMLNVkn_o8Sht02MKjExeocFdqlS7cakejtiaIvjsTJRtlZKI2xmFDf06M_JeHg_TuCNdjlZHgRh1cE3katzYuJaNQWGJJM999iuL_fhzFnwEQvEXJZAAK9N2V7QuctjQCyJBEPx2GiVSG-NFQej6mJjlNcA8L7kJmiTrZUFCHnkw-dNrla9dgJaNiB_FuK_DXZbFEkn5MeXmxrZhZ4PFxgN2gFzr0y5FhzdEBrl9-zdlNbAKI5gaoTfzzRrZ9msLu8AbbeELjVa8WMJ-cmjpc_wt9_Hj_rKMttVIV3_dzzFxC-3lHzz-F47PxuMPTiIJ50LktcdFm54pm-Thlq6oYVRpeCHUg_7680USVHRrCRfMgxebGLAO2OIBrYh4KFfYc2Z0DAEev-MAbf5ilcZquncAqxZcRW6wNYNr99lo5qL41kNd2Ca0fANGjgmxFLVDDHYu9XejO-5XeMJBQPgFPFMg66V5Cie_keGjuUNAqbqXFhi5aKRAvlCT2GIy-cklqeh3UyCfgRSbf1RsluFmBDQfNIGcLRIUSsrWoYOzj2gugwmYktMWjqrQBQZazJovP3JQr_0000?></g></svg> |