cluster api--><rectfill="#FFFFFF"height="204"style="stroke:#444444;stroke-width:1.0;stroke-dasharray:7.0,7.0;"width="285"x="718"y="326.1992"/><textfill="#444444"font-family="sans-serif"font-size="16"font-weight="bold"lengthAdjust="spacing"textLength="121"x="800"y="343.668">Server side API</text><textfill="#444444"font-family="sans-serif"font-size="12"lengthAdjust="spacing"textLength="63"x="829"y="358.6445">[Container]</text><!--MD5=[85f4d1a33338ddce045f9b827d37a273]
cluster api--><rectfill="#FFFFFF"height="204"style="stroke:#444444;stroke-width:1.0;stroke-dasharray:7.0,7.0;"width="285"x="409"y="890.1992"/><textfill="#444444"font-family="sans-serif"font-size="16"font-weight="bold"lengthAdjust="spacing"textLength="121"x="491"y="907.668">Server side API</text><textfill="#444444"font-family="sans-serif"font-size="12"lengthAdjust="spacing"textLength="63"x="520"y="922.6445">[Container]</text><!--MD5=[67a6735b2a5707e03290b64fb931c9ce]
entity api_manifest--><rectfill="#85BBF0"height="118.9297"style="stroke:#78A8D8;stroke-width:1.5;"width="218"x="761"y="386.6992"/><textfill="#000000"font-family="sans-serif"font-size="16"font-weight="bold"lengthAdjust="spacing"textLength="152"x="794"y="412.168">/api/manifest/[id]</text><textfill="#000000"font-family="sans-serif"font-size="12"font-style="italic"lengthAdjust="spacing"textLength="41"x="849.5"y="427.1445">[Route]</text><textfill="#000000"font-family="sans-serif"font-size="14"lengthAdjust="spacing"textLength="0"x="872"y="443.2109"/><textfill="#000000"font-family="sans-serif"font-size="14"lengthAdjust="spacing"textLength="174"x="783"y="459.6992">Fetch basic metadata and</text><textfill="#000000"font-family="sans-serif"font-size="14"lengthAdjust="spacing"textLength="198"x="771"y="476.1875">connected images by id from</text><textfill="#000000"font-family="sans-serif"font-size="14"lengthAdjust="spacing"textLength="63"x="838.5"y="492.6758">Sanity DB</text><!--MD5=[b1e3d2dcb3697de9e6328d1cb436cbc4]
entity id--><rectfill="#85BBF0"height="102.4414"style="stroke:#78A8D8;stroke-width:1.5;"width="217"x="304.75"y="386.1992"/><textfill="#000000"font-family="sans-serif"font-size="16"font-weight="bold"lengthAdjust="spacing"textLength="37"x="394.75"y="411.668">/[id]</text><textfill="#000000"font-family="sans-serif"font-size="12"font-style="italic"lengthAdjust="spacing"textLength="41"x="392.75"y="426.6445">[Route]</text><textfill="#000000"font-family="sans-serif"font-size="14"lengthAdjust="spacing"textLength="0"x="415.25"y="442.7109"/><textfill="#000000"font-family="sans-serif"font-size="14"lengthAdjust="spacing"textLength="189"x="318.75"y="459.1992">Serves static page based on</text><textfill="#000000"font-family="sans-serif"font-size="14"lengthAdjust="spacing"textLength="75"x="375.75"y="475.6875">id variable.</text><!--MD5=[f5830ebc1bf7d5a9a4b07c85dbdf785d]
entity frontend--><rectfill="#438DD5"height="152.4414"style="stroke:#3C7FC0;stroke-width:1.5;"width="206"x="166"y="28.1992"/><imageheight="50"width="50"x="244"xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAABfUlEQVR4XtWOAY7DIAwE+/9P36mVEm0HQ7wcTriRRmo9hvB6recn4bbwoa6Pwses8jb44QrL4QerXQ4/cKfL4MVP+Sd42dNOwUt20YKHd9KCh3czBQ/t6hAu7+wQLu9uCJf+iw1cuEOFLesXjI4K25UKW9YvGB0VtisVNscTBkfCPlJhczxhcIzgTk+FzfEDh64R3OmpsDl+4NC1B/ciFTbXZuA6grtUYXNtBq5K9H+kwubaDFyV0SxSYXNtBq5KNHvDM9Eem2szcFUyc3cnazNwVZyW6Y7NwFUZtTejzubaDFwVtqs+aq7NwFVhy+z05o4nDI4KW7TzJuqcOZ4wOCps2b1o5njC4KiwUYVt1gYuZFXYIhW2GRu4kFVhi1TYZgzhUsYDzkcqbI5duFipwpZ1CJerVNgyXsIDlSpsI9PwYKUKW08LHq70gPPIKXhJlQpbb8+Gl1WpsLFPw0urPOjNl8DLqzzQ3yXww6u9HT5glY/Bh8y6FXzcyKX8AqAq6Wv25cYoAAAAAElFTkSuQmCC"y="38.1992"/><textfill="#FFFFFF"font-family="sans-serif"font-size="16"font-weight="bold"lengthAdjust="spacing"textLength="113"x="212.5"y="103.668">Next frontend</text><textfill="#FFFFFF"font-family="sans-serif"font-size="12"font-style="italic"lengthAdjust="spacing"textLength="126"x="206"y="118.6445">[Javascript and React]</text><textfill="#FFFFFF"font-family="sans-serif"font-size="14"lengthAdjust="spacing"textLength="0"x="271"y="134.7109"/><textfill="#FFFFFF"font-family="sans-serif"font-size="14"lengthAdjust="spacing"textLength="178"x="180"y="151.1992">Provides all content to the</text><textfill="#FFFFFF"font-family="sans-serif"font-size="14"lengthAdjust="spacing"textLength="185"x="176.5"y="167.6875">user via their web browser.</text><!--MD5=[3d74be2a757051a7059b41e555fce061]
entity api_manifest--><rectfill="#85BBF0"height="118.9297"style="stroke:#78A8D8;stroke-width:1.5;"width="218"x="433"y="950.6992"/><textfill="#000000"font-family="sans-serif"font-size="16"font-weight="bold"lengthAdjust="spacing"textLength="152"x="466"y="976.168">/api/manifest/[id]</text><textfill="#000000"font-family="sans-serif"font-size="12"font-style="italic"lengthAdjust="spacing"textLength="41"x="521.5"y="991.1445">[Route]</text><textfill="#000000"font-family="sans-serif"font-size="14"lengthAdjust="spacing"textLength="0"x="544"y="1007.2109"/><textfill="#000000"font-family="sans-serif"font-size="14"lengthAdjust="spacing"textLength="174"x="455"y="1023.6992">Fetch basic metadata and</text><textfill="#000000"font-family="sans-serif"font-size="14"lengthAdjust="spacing"textLength="198"x="443"y="1040.1875">connected images by id from</text><textfill="#000000"font-family="sans-serif"font-size="14"lengthAdjust="spacing"textLength="63"x="510.5"y="1056.6758">Sanity DB</text><!--MD5=[97d47de14f4cfe6ede125365af6aaf98]
entity mirador_viewer--><rectfill="#85BBF0"height="118.9297"style="stroke:#78A8D8;stroke-width:1.5;"width="218"x="309"y="652.6992"/><textfill="#000000"font-family="sans-serif"font-size="16"font-weight="bold"lengthAdjust="spacing"textLength="129"x="353.5"y="678.168">/miradorViewer</text><textfill="#000000"font-family="sans-serif"font-size="12"font-style="italic"lengthAdjust="spacing"textLength="40"x="398"y="693.1445">[React]</text><textfill="#000000"font-family="sans-serif"font-size="14"lengthAdjust="spacing"textLength="0"x="420"y="709.2109"/><textfill="#000000"font-family="sans-serif"font-size="14"lengthAdjust="spacing"textLength="174"x="331"y="725.6992">Fetch basic metadata and</text><textfill="#000000"font-family="sans-serif"font-size="14"lengthAdjust="spacing"textLength="198"x="319"y="742.1875">connected images by id from</text><textfill="#000000"font-family="sans-serif"font-size="14"lengthAdjust="spacing"textLength="63"x="386.5"y="758.6758">Sanity DB</text><!--MD5=[b1e3d2dcb3697de9e6328d1cb436cbc4]
entity marcusManifest--><rectfill="#438DD5"height="152.4414"style="stroke:#3C7FC0;stroke-width:1.5;"width="206"x="7"y="370.1992"/><imageheight="50"width="50"x="85"xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAABfUlEQVR4XtWOAY7DIAwE+/9P36mVEm0HQ7wcTriRRmo9hvB6recn4bbwoa6Pwses8jb44QrL4QerXQ4/cKfL4MVP+Sd42dNOwUt20YKHd9KCh3czBQ/t6hAu7+wQLu9uCJf+iw1cuEOFLesXjI4K25UKW9YvGB0VtisVNscTBkfCPlJhczxhcIzgTk+FzfEDh64R3OmpsDl+4NC1B/ciFTbXZuA6grtUYXNtBq5K9H+kwubaDFyV0SxSYXNtBq5KNHvDM9Eem2szcFUyc3cnazNwVZyW6Y7NwFUZtTejzubaDFwVtqs+aq7NwFVhy+z05o4nDI4KW7TzJuqcOZ4wOCps2b1o5njC4KiwUYVt1gYuZFXYIhW2GRu4kFVhi1TYZgzhUsYDzkcqbI5duFipwpZ1CJerVNgyXsIDlSpsI9PwYKUKW08LHq70gPPIKXhJlQpbb8+Gl1WpsLFPw0urPOjNl8DLqzzQ3yXww6u9HT5glY/Bh8y6FXzcyKX8AqAq6Wv25cYoAAAAAElFTkSuQmCC"y="380.1992"/><textfill="#FFFFFF"font-family="sans-serif"font-size="16"font-weight="bold"lengthAdjust="spacing"textLength="137"x="41.5"y="445.668">Marcus manifest</text><textfill="#FFFFFF"font-family="sans-serif"font-size="12"font-style="italic"lengthAdjust="spacing"textLength="35"x="92.5"y="460.6445">[Next]</text><textfill="#FFFFFF"font-family="sans-serif"font-size="14"lengthAdjust="spacing"textLength="0"x="112"y="476.7109"/><textfill="#FFFFFF"font-family="sans-serif"font-size="14"lengthAdjust="spacing"textLength="178"x="21"y="493.1992">Temporary API for Marcus</text><textfill="#FFFFFF"font-family="sans-serif"font-size="14"lengthAdjust="spacing"textLength="94"x="63"y="509.6875">IIIF manifests.</text><!--MD5=[de93d881034ae2b005eca73b65398148]
entity frontend--><rectfill="#438DD5"height="152.4414"style="stroke:#3C7FC0;stroke-width:1.5;"width="206"x="517"y="28.1992"/><imageheight="50"width="50"x="595"xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAABfUlEQVR4XtWOAY7DIAwE+/9P36mVEm0HQ7wcTriRRmo9hvB6recn4bbwoa6Pwses8jb44QrL4QerXQ4/cKfL4MVP+Sd42dNOwUt20YKHd9KCh3czBQ/t6hAu7+wQLu9uCJf+iw1cuEOFLesXjI4K25UKW9YvGB0VtisVNscTBkfCPlJhczxhcIzgTk+FzfEDh64R3OmpsDl+4NC1B/ciFTbXZuA6grtUYXNtBq5K9H+kwubaDFyV0SxSYXNtBq5KNHvDM9Eem2szcFUyc3cnazNwVZyW6Y7NwFUZtTejzubaDFwVtqs+aq7NwFVhy+z05o4nDI4KW7TzJuqcOZ4wOCps2b1o5njC4KiwUYVt1gYuZFXYIhW2GRu4kFVhi1TYZgzhUsYDzkcqbI5duFipwpZ1CJerVNgyXsIDlSpsI9PwYKUKW08LHq70gPPIKXhJlQpbb8+Gl1WpsLFPw0urPOjNl8DLqzzQ3yXww6u9HT5glY/Bh8y6FXzcyKX8AqAq6Wv25cYoAAAAAElFTkSuQmCC"y="38.1992"/><textfill="#FFFFFF"font-family="sans-serif"font-size="16"font-weight="bold"lengthAdjust="spacing"textLength="113"x="563.5"y="103.668">Next frontend</text><textfill="#FFFFFF"font-family="sans-serif"font-size="12"font-style="italic"lengthAdjust="spacing"textLength="126"x="557"y="118.6445">[Javascript and React]</text><textfill="#FFFFFF"font-family="sans-serif"font-size="14"lengthAdjust="spacing"textLength="0"x="622"y="134.7109"/><textfill="#FFFFFF"font-family="sans-serif"font-size="14"lengthAdjust="spacing"textLength="178"x="531"y="151.1992">Provides all content to the</text><textfill="#FFFFFF"font-family="sans-serif"font-size="14"lengthAdjust="spacing"textLength="185"x="527.5"y="167.6875">user via their web browser.</text><!--MD5=[3d74be2a757051a7059b41e555fce061]
entity marcusManifest--><rectfill="#438DD5"height="152.4414"style="stroke:#3C7FC0;stroke-width:1.5;"width="206"x="7"y="934.1992"/><imageheight="50"width="50"x="85"xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAABfUlEQVR4XtWOAY7DIAwE+/9P36mVEm0HQ7wcTriRRmo9hvB6recn4bbwoa6Pwses8jb44QrL4QerXQ4/cKfL4MVP+Sd42dNOwUt20YKHd9KCh3czBQ/t6hAu7+wQLu9uCJf+iw1cuEOFLesXjI4K25UKW9YvGB0VtisVNscTBkfCPlJhczxhcIzgTk+FzfEDh64R3OmpsDl+4NC1B/ciFTbXZuA6grtUYXNtBq5K9H+kwubaDFyV0SxSYXNtBq5KNHvDM9Eem2szcFUyc3cnazNwVZyW6Y7NwFUZtTejzubaDFwVtqs+aq7NwFVhy+z05o4nDI4KW7TzJuqcOZ4wOCps2b1o5njC4KiwUYVt1gYuZFXYIhW2GRu4kFVhi1TYZgzhUsYDzkcqbI5duFipwpZ1CJerVNgyXsIDlSpsI9PwYKUKW08LHq70gPPIKXhJlQpbb8+Gl1WpsLFPw0urPOjNl8DLqzzQ3yXww6u9HT5glY/Bh8y6FXzcyKX8AqAq6Wv25cYoAAAAAElFTkSuQmCC"y="944.1992"/><textfill="#FFFFFF"font-family="sans-serif"font-size="16"font-weight="bold"lengthAdjust="spacing"textLength="137"x="41.5"y="1009.668">Marcus manifest</text><textfill="#FFFFFF"font-family="sans-serif"font-size="12"font-style="italic"lengthAdjust="spacing"textLength="35"x="92.5"y="1024.6445">[Next]</text><textfill="#FFFFFF"font-family="sans-serif"font-size="14"lengthAdjust="spacing"textLength="0"x="112"y="1040.7109"/><textfill="#FFFFFF"font-family="sans-serif"font-size="14"lengthAdjust="spacing"textLength="178"x="21"y="1057.1992">Temporary API for Marcus</text><textfill="#FFFFFF"font-family="sans-serif"font-size="14"lengthAdjust="spacing"textLength="94"x="63"y="1073.6875">IIIF manifests.</text><!--MD5=[de93d881034ae2b005eca73b65398148]
link frontend to app--><pathd="M269,180.2342 C269,204.8747 269,233.4343 269,262.4919 C269,277.0206 269,291.6738 269,306.0239 C269,313.1989 269,320.2981 269,327.2681 C269,330.7531 269,334.2058 269,337.6195 C269,339.3263 269,341.0234 269,342.7099 "fill="none"id="frontend-to-app"style="stroke:#666666;stroke-width:1.0;"/><polygonfill="#666666"points="269,342.7099,272,334.7099,266,334.7099,269,342.7099"style="stroke:#666666;stroke-width:1.0;"/><textfill="#666666"font-family="sans-serif"font-size="12"font-weight="bold"lengthAdjust="spacing"textLength="30"x="295"y="223.3008">Uses</text><textfill="#666666"font-family="sans-serif"font-size="12"font-style="italic"lengthAdjust="spacing"textLength="80"x="270"y="237.4336">[JSON/HTTPS]</text><!--MD5=[8bf8f78c8138200d535fc92b12eeb6a8]
link marcusManifest to sparql--><pathd="M110,522.4292 C110,561.9772 110,609.9542 110,647.7732 "fill="none"id="marcusManifest-to-sparql"style="stroke:#666666;stroke-width:1.0;"/><polygonfill="#666666"points="110,656.1712,113,648.1712,107,648.1712,110,656.1712"style="stroke:#666666;stroke-width:1.0;"/><textfill="#666666"font-family="sans-serif"font-size="12"font-weight="bold"lengthAdjust="spacing"textLength="78"x="112"y="591.3008">Fetches data</text><textfill="#666666"font-family="sans-serif"font-size="12"font-style="italic"lengthAdjust="spacing"textLength="80"x="111"y="605.4336">[JSON/HTTPS]</text><!--MD5=[7ea119c7c8011febc771f182c10b6cc3]
link id to mirador_viewer--><pathd="M413.917,488.2712 C414.719,532.0712 415.891,596.0392 416.773,644.2312 "fill="none"id="id-to-mirador_viewer"style="stroke:#666666;stroke-width:1.0;"/><polygonfill="#666666"points="416.924,652.4292,419.7763,644.3754,413.7774,644.4858,416.924,652.4292"style="stroke:#666666;stroke-width:1.0;"/><textfill="#666666"font-family="sans-serif"font-size="12"font-weight="bold"lengthAdjust="spacing"textLength="30"x="442"y="549.3008">Uses</text><textfill="#666666"font-family="sans-serif"font-size="12"font-style="italic"lengthAdjust="spacing"textLength="80"x="417"y="563.4336">[JSON/HTTPS]</text><!--MD5=[009f1bdadfdb747559dc589c849ab181]
link api_manifest to sanity_db--><pathd="M870,506.0112 C870,543.1792 870,591.6892 870,632.3182 "fill="none"id="api_manifest-to-sanity_db"style="stroke:#666666;stroke-width:1.0;"/><polygonfill="#666666"points="870,640.3332,873,632.3332,867,632.3332,870,640.3332"style="stroke:#666666;stroke-width:1.0;"/><textfill="#666666"font-family="sans-serif"font-size="12"font-weight="bold"lengthAdjust="spacing"textLength="30"x="896"y="591.3008">Uses</text><textfill="#666666"font-family="sans-serif"font-size="12"font-style="italic"lengthAdjust="spacing"textLength="80"x="871"y="605.4336">[JSON/HTTPS]</text><rectfill="#FFFFFF"height="162.3945"rx="5"ry="5"style="stroke:#FFFFFF;stroke-width:1.0;"width="159"x="860"y="799.6523"/><textfill="#000000"font-family="sans-serif"font-size="14"font-weight="bold"lengthAdjust="spacing"textLength="51"x="866"y="820.1875">Legend</text><textfill="#FFFFFF"font-family="sans-serif"font-size="14"lengthAdjust="spacing"textLength="0"x="921"y="820.1875"/><rectfill="#08427B"height="16.4883"style="stroke:none;stroke-width:1.0;"width="147"x="866"y="823.1406"/><textfill="#FFFFFF"font-family="sans-serif"font-size="14"lengthAdjust="spacing"textLength="48"x="870"y="836.6758">person</text><rectfill="#1168BD"height="16.4883"style="stroke:none;stroke-width:1.0;"width="147"x="866"y="839.6289"/><textfill="#FFFFFF"font-family="sans-serif"font-size="14"lengthAdjust="spacing"textLength="47"x="870"y="853.1641">system</text><rectfill="#438DD5"height="16.4883"style="stroke:none;stroke-width:1.0;"width="147"x="866"y="856.1172"/><textfill="#FFFFFF"font-family="sans-serif"font-size="14"lengthAdjust="spacing"textLength="65"x="870"y="869.6523">container</text><rectfill="#85BBF0"height="16.4883"style="stroke:none;stroke-width:1.0;"width="147"x="866"y="872.6055"/><textfill="#FFFFFF"font-family="sans-serif"font-size="14"lengthAdjust="spacing"textLength="78"x="870"y="886.1406">component</text><rectfill="#686868"height="16.4883"style="stroke:none;stroke-width:1.0;"width="147"x="866"y="889.0938"/><textfill="#FFFFFF"font-family="sans-serif"font-size="14"lengthAdjust="spacing"textLength="109"x="870"y="902.6289">external person</text><rectfill="#999999"height="16.4883"style="stroke:none;stroke-width:1.0;"width="147"x="866"y="905.582"/><textfill="#FFFFFF"font-family="sans-serif"font-size="14"lengthAdjust="spacing"textLength="108"x="870"y="919.1172">external system</text><rectfill="#B3B3B3"height="16.4883"style="stroke:none;stroke-width:1.0;"width="147"x="866"y="922.0703"/><textfill="#FFFFFF"font-family="sans-serif"font-size="14"lengthAdjust="spacing"textLength="126"x="870"y="935.6055">external container</text><rectfill="#CCCCCC"height="16.4883"style="stroke:none;stroke-width:1.0;"width="147"x="866"y="938.5586"/><textfill="#FFFFFF"font-family="sans-serif"font-size="14"lengthAdjust="spacing"textLength="139"x="870"y="952.0938">external component</text><linestyle="stroke:#FFFFFF;stroke-width:1.0;"x1="866"x2="1013"y1="806.6523"y2="806.6523"/><linestyle="stroke:#FFFFFF;stroke-width:1.0;"x1="866"x2="1013"y1="823.1406"y2="823.1406"/><linestyle="stroke:#FFFFFF;stroke-width:1.0;"x1="866"x2="1013"y1="839.6289"y2="839.6289"/><linestyle="stroke:#FFFFFF;stroke-width:1.0;"x1="866"x2="1013"y1="856.1172"y2="856.1172"/><linestyle="stroke:#FFFFFF;stroke-width:1.0;"x1="866"x2="1013"y1="872.6055"y2="872.6055"/><linestyle="stroke:#FFFFFF;stroke-width:1.0;"x1="866"x2="1013"y1="889.0938"y2="889.0938"/><linestyle="stroke:#FFFFFF;stroke-width:1.0;"x1="866"x2="1013"y1="905.582"y2="905.582"/><linestyle="stroke:#FFFFFF;stroke-width:1.0;"x1="866"x2="1013"y1="922.0703"y2="922.0703"/><linestyle="stroke:#FFFFFF;stroke-width:1.0;"x1="866"x2="1013"y1="938.5586"y2="938.5586"/><linestyle="stroke:#FFFFFF;stroke-width:1.0;"x1="866"x2="1013"y1="955.0469"y2="955.0469"/><linestyle="stroke:#FFFFFF;stroke-width:1.0;"x1="866"x2="866"y1="806.6523"y2="955.0469"/><linestyle="stroke:#FFFFFF;stroke-width:1.0;"x1="1013"x2="1013"y1="806.6523"y2="955.0469"/><!--MD5=[39c14553828d308ed41b0ce288d46199]
link mirador_viewer to api_manifest--><pathd="M442.647,772.0332 C463.313,821.3672 492.808,891.7742 514.291,943.0542 "fill="none"id="mirador_viewer-to-api_manifest"style="stroke:#666666;stroke-width:1.0;"/><polygonfill="#666666"points="517.4,950.4762,517.0755,941.9384,511.5416,944.2569,517.4,950.4762"style="stroke:#666666;stroke-width:1.0;"/><textfill="#666666"font-family="sans-serif"font-size="12"font-weight="bold"lengthAdjust="spacing"textLength="30"x="506"y="840.3008">Uses</text><textfill="#666666"font-family="sans-serif"font-size="12"font-style="italic"lengthAdjust="spacing"textLength="80"x="481"y="854.4336">[JSON/HTTPS]</text><!--MD5=[c00afe3db0c8ea2b21346873462b2a20]
link frontend to app--><pathd="M516.803,121.8792 C440.788,139.9192 341.667,176.6592 288,250.1992 C263.891,283.2392 258.9115,328.8137 260.0713,366.5802 C260.2162,371.301 260.4571,375.8998 260.7686,380.3369 C260.8075,380.8916 260.8475,381.4437 260.8886,381.9932 C260.9092,382.2679 260.93,382.542 260.951,382.8155 "fill="none"id="frontend-to-app"style="stroke:#666666;stroke-width:1.0;"/><polygonfill="#666666"points="260.951,382.8155,263.3277,374.6087,257.3455,375.0695,260.951,382.8155"style="stroke:#666666;stroke-width:1.0;"/><textfill="#666666"font-family="sans-serif"font-size="12"font-weight="bold"lengthAdjust="spacing"textLength="30"x="347"y="223.3008">Uses</text><textfill="#666666"font-family="sans-serif"font-size="12"font-style="italic"lengthAdjust="spacing"textLength="80"x="322"y="237.4336">[JSON/HTTPS]</text><!--MD5=[ba084830ed4dce89920c704d0e19a212]
link mirador_viewer to marcusManifest--><pathd="M356.781,772.0332 C310.158,816.8392 245.447,879.0292 193.987,928.4842 "fill="none"id="mirador_viewer-to-marcusManifest"style="stroke:#666666;stroke-width:1.0;"/><polygonfill="#666666"points="188.098,934.1442,195.9447,930.7636,191.7871,926.4377,188.098,934.1442"style="stroke:#666666;stroke-width:1.0;"/><textfill="#666666"font-family="sans-serif"font-size="12"font-weight="bold"lengthAdjust="spacing"textLength="95"x="302"y="833.3008">Fetches Marcus</text><textfill="#666666"font-family="sans-serif"font-size="12"font-weight="bold"lengthAdjust="spacing"textLength="62"x="320.5"y="847.4336">manifests</text><textfill="#666666"font-family="sans-serif"font-size="12"font-style="italic"lengthAdjust="spacing"textLength="80"x="311.5"y="861.5664">[JSON/HTTPS]</text><!--MD5=[b6a0ac1322f03a45938afc16e0063b61]
link marcusManifest to sparql--><pathd="M110,1086.4292 C110,1129.4292 110,1182.3932 110,1221.4312 "fill="none"id="marcusManifest-to-sparql"style="stroke:#666666;stroke-width:1.0;"/><polygonfill="#666666"points="110,1229.5422,113,1221.5422,107,1221.5422,110,1229.5422"style="stroke:#666666;stroke-width:1.0;"/><textfill="#666666"font-family="sans-serif"font-size="12"font-weight="bold"lengthAdjust="spacing"textLength="78"x="112"y="1155.3008">Fetches data</text><textfill="#666666"font-family="sans-serif"font-size="12"font-style="italic"lengthAdjust="spacing"textLength="80"x="111"y="1169.4336">[JSON/HTTPS]</text><!--MD5=[7ea119c7c8011febc771f182c10b6cc3]
link api_manifest to sanity_db--><pathd="M542,1070.0112 C542,1107.1792 542,1155.6892 542,1196.3182 "fill="none"id="api_manifest-to-sanity_db"style="stroke:#666666;stroke-width:1.0;"/><polygonfill="#666666"points="542,1204.3332,545,1196.3332,539,1196.3332,542,1204.3332"style="stroke:#666666;stroke-width:1.0;"/><textfill="#666666"font-family="sans-serif"font-size="12"font-weight="bold"lengthAdjust="spacing"textLength="30"x="568"y="1155.3008">Uses</text><textfill="#666666"font-family="sans-serif"font-size="12"font-style="italic"lengthAdjust="spacing"textLength="80"x="543"y="1169.4336">[JSON/HTTPS]</text><rectfill="#FFFFFF"height="162.3945"rx="5"ry="5"style="stroke:#FFFFFF;stroke-width:1.0;"width="159"x="668"y="1363.6523"/><textfill="#000000"font-family="sans-serif"font-size="14"font-weight="bold"lengthAdjust="spacing"textLength="51"x="674"y="1384.1875">Legend</text><textfill="#FFFFFF"font-family="sans-serif"font-size="14"lengthAdjust="spacing"textLength="0"x="729"y="1384.1875"/><rectfill="#08427B"height="16.4883"style="stroke:none;stroke-width:1.0;"width="147"x="674"y="1387.1406"/><textfill="#FFFFFF"font-family="sans-serif"font-size="14"lengthAdjust="spacing"textLength="48"x="678"y="1400.6758">person</text><rectfill="#1168BD"height="16.4883"style="stroke:none;stroke-width:1.0;"width="147"x="674"y="1403.6289"/><textfill="#FFFFFF"font-family="sans-serif"font-size="14"lengthAdjust="spacing"textLength="47"x="678"y="1417.1641">system</text><rectfill="#438DD5"height="16.4883"style="stroke:none;stroke-width:1.0;"width="147"x="674"y="1420.1172"/><textfill="#FFFFFF"font-family="sans-serif"font-size="14"lengthAdjust="spacing"textLength="65"x="678"y="1433.6523">container</text><rectfill="#85BBF0"height="16.4883"style="stroke:none;stroke-width:1.0;"width="147"x="674"y="1436.6055"/><textfill="#FFFFFF"font-family="sans-serif"font-size="14"lengthAdjust="spacing"textLength="78"x="678"y="1450.1406">component</text><rectfill="#686868"height="16.4883"style="stroke:none;stroke-width:1.0;"width="147"x="674"y="1453.0938"/><textfill="#FFFFFF"font-family="sans-serif"font-size="14"lengthAdjust="spacing"textLength="109"x="678"y="1466.6289">external person</text><rectfill="#999999"height="16.4883"style="stroke:none;stroke-width:1.0;"width="147"x="674"y="1469.582"/><textfill="#FFFFFF"font-family="sans-serif"font-size="14"lengthAdjust="spacing"textLength="108"x="678"y="1483.1172">external system</text><rectfill="#B3B3B3"height="16.4883"style="stroke:none;stroke-width:1.0;"width="147"x="674"y="1486.0703"/><textfill="#FFFFFF"font-family="sans-serif"font-size="14"lengthAdjust="spacing"textLength="126"x="678"y="1499.6055">external container</text><rectfill="#CCCCCC"height="16.4883"style="stroke:none;stroke-width:1.0;"width="147"x="674"y="1502.5586"/><textfill="#FFFFFF"font-family="sans-serif"font-size="14"lengthAdjust="spacing"textLength="139"x="678"y="1516.0938">external component</text><linestyle="stroke:#FFFFFF;stroke-width:1.0;"x1="674"x2="821"y1="1370.6523"y2="1370.6523"/><linestyle="stroke:#FFFFFF;stroke-width:1.0;"x1="674"x2="821"y1="1387.1406"y2="1387.1406"/><linestyle="stroke:#FFFFFF;stroke-width:1.0;"x1="674"x2="821"y1="1403.6289"y2="1403.6289"/><linestyle="stroke:#FFFFFF;stroke-width:1.0;"x1="674"x2="821"y1="1420.1172"y2="1420.1172"/><linestyle="stroke:#FFFFFF;stroke-width:1.0;"x1="674"x2="821"y1="1436.6055"y2="1436.6055"/><linestyle="stroke:#FFFFFF;stroke-width:1.0;"x1="674"x2="821"y1="1453.0938"y2="1453.0938"/><linestyle="stroke:#FFFFFF;stroke-width:1.0;"x1="674"x2="821"y1="1469.582"y2="1469.582"/><linestyle="stroke:#FFFFFF;stroke-width:1.0;"x1="674"x2="821"y1="1486.0703"y2="1486.0703"/><linestyle="stroke:#FFFFFF;stroke-width:1.0;"x1="674"x2="821"y1="1502.5586"y2="1502.5586"/><linestyle="stroke:#FFFFFF;stroke-width:1.0;"x1="674"x2="821"y1="1519.0469"y2="1519.0469"/><linestyle="stroke:#FFFFFF;stroke-width:1.0;"x1="674"x2="674"y1="1370.6523"y2="1519.0469"/><linestyle="stroke:#FFFFFF;stroke-width:1.0;"x1="821"x2="821"y1="1370.6523"y2="1519.0469"/><!--MD5=[66eebc1c5bd76ed29c40389db595807a]
database "<img:data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAACeklEQVRoQ+2ZQU5bQQyGPe8hVWkT0mOgqlUldskNkos06aaLwIojlGzbHgTBCYA1C9hwiUYEWkQSI0cMekomE9vjlwBK1jO2P//2eObFwRv5uTfCARuQl6bkRpGQIje9DnKVogxW+3/MEmliSAIQAq0ZACWBpAIUoTLn4MPhb3U86o2WEEUgrToqkLIgPJAGRgwyaDUw+/SV29PqdVIYMcjfVgNzBkgokGHvGyJzBq8dhBMAtzQ5trzkIkVIjenGLIN858tc2Ugc0+ZlQBJ7OhAAmC0viVOfgX/733E0mUT7iGtXDULePYxzDqrKGWClShIITMaQf94FbtbURxhjYxrIk4OPJ+ciO4y4xEtEATw3e8BN7hzUjs9E9sTRRjaIHMdAij7WoZAIhILlwniwSp7Bu6NTsR+pWmIHUpBQQOS0btxXYhCNKrHs0vV926C3VCB0cWQ/BQU1ktJbKhCKrSwYBw7qJ/LTTw3iE23RM7OiaXooGcQHMWg3EQ0LzjmA+jF/0JqBzGZ10GoiQlonSXqmNJA5sHZDJRgXZmUgWsVePEgRLHZgvCqQ2JB9VSC3vS5OAGF8dTE3Ps1BrF5yoUFftF29voTBw+h52cpB6D3y3ui5W1Rm5SCUQs2TN6R0qSAU6LLyksLc7XVxHLgNUEL8SWauCBfEF3dMnWGvu3TqkypcCPIpHogcVQQ394VLSweRKqOFkvabWBEKbLjfQYx/INTGP90nhVCVVjHCMspMA5EMQgbw4AcO/98nKTANxAFUD/V/jqpKa9l0llBtZRlUfv5KjiPZwKKg41/aHdT6+j8+Qz5LA5GoYrF2A2KRRUsbG0Uss2lh6xFkswBC9e0BzQAAAABJRU5ErkJggg==>\n==Sanity Cloud Storage\n//<size:12>[Google Cloud]</size>//\n\n Stores metadata and files." <<external_container>> as sanity_db
database "<img:data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAACeklEQVRoQ+2ZQU5bQQyGPe8hVWkT0mOgqlUldskNkos06aaLwIojlGzbHgTBCYA1C9hwiUYEWkQSI0cMekomE9vjlwBK1jO2P//2eObFwRv5uTfCARuQl6bkRpGQIje9DnKVogxW+3/MEmliSAIQAq0ZACWBpAIUoTLn4MPhb3U86o2WEEUgrToqkLIgPJAGRgwyaDUw+/SV29PqdVIYMcjfVgNzBkgokGHvGyJzBq8dhBMAtzQ5trzkIkVIjenGLIN858tc2Ugc0+ZlQBJ7OhAAmC0viVOfgX/733E0mUT7iGtXDULePYxzDqrKGWClShIITMaQf94FbtbURxhjYxrIk4OPJ+ciO4y4xEtEATw3e8BN7hzUjs9E9sTRRjaIHMdAij7WoZAIhILlwniwSp7Bu6NTsR+pWmIHUpBQQOS0btxXYhCNKrHs0vV926C3VCB0cWQ/BQU1ktJbKhCKrSwYBw7qJ/LTTw3iE23RM7OiaXooGcQHMWg3EQ0LzjmA+jF/0JqBzGZ10GoiQlonSXqmNJA5sHZDJRgXZmUgWsVePEgRLHZgvCqQ2JB9VSC3vS5OAGF8dTE3Ps1BrF5yoUFftF29voTBw+h52cpB6D3y3ui5W1Rm5SCUQs2TN6R0qSAU6LLyksLc7XVxHLgNUEL8SWauCBfEF3dMnWGvu3TqkypcCPIpHogcVQQ394VLSweRKqOFkvabWBEKbLjfQYx/INTGP90nhVCVVjHCMspMA5EMQgbw4AcO/98nKTANxAFUD/V/jqpKa9l0llBtZRlUfv5KjiPZwKKg41/aHdT6+j8+Qz5LA5GoYrF2A2KRRUsbG0Uss2lh6xFkswBC9e0BzQAAAABJRU5ErkJggg==>\n==Sanity Cloud Storage\n//<size:12>[Google Cloud]</size>//\n\n Stores metadata and files." <<external_container>> as sanity_db
rectangle "<img:data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAABm0lEQVRoQ92Z25LDMAhDt///0dtJpu4kDhgBimPaZ0x0LPCtrz/+7x9I+QJiXCGshIj4kbC0jkyCrHgNLKQpMugugCOYW5d3wAyIEBAKMhvADYOAPAkBA1kgq0A0IFXvCGQ1iCGMBrIqxAYjaq4IIsJIICu7oTZ/D1IF4uJKZZATzBGkkhuXEnsahPH9PUdLlHEjIyYz9rSv/ALIbggbZEvqcZfhyG0gHhgqiGcGpVtdZlNdHgR1hQWyr1p3ONKcs3IvC7IJ94jzxA6fh9iONAdQgWic+cY1A2TUL8uD9KdTrVdKgCAwJUGkEisDYrlSCgSFsfac4SM4+9CINLVWYiVAEFfKgFgw5qanBJxuiOghzzr9IrNKa/CPmN8FiboSWTBYrnzz9JcipDSitdyPY8CoIFFXInBZkJMJmWtqRDzLlYtuCWSmK9ElGQZ5CgbpUXHyNUfQOzejvDyuqHotkJnOWM0/1IqAPAHTl5ip0ww41A5Sv4xSO26wsD44cCJQRJP8Dyk4rXc5NB2EvbKFAJqI1GDBOY9L1G+/AToZcCqjfA/hAAAAAElFTkSuQmCC>\n==Marcus manifest\n//<size:12>[Next]</size>//\n\n Temporary API for Marcus IIIF manifests." <<container>> as marcusManifest
rectangle "<img:data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAABm0lEQVRoQ92Z25LDMAhDt///0dtJpu4kDhgBimPaZ0x0LPCtrz/+7x9I+QJiXCGshIj4kbC0jkyCrHgNLKQpMugugCOYW5d3wAyIEBAKMhvADYOAPAkBA1kgq0A0IFXvCGQ1iCGMBrIqxAYjaq4IIsJIICu7oTZ/D1IF4uJKZZATzBGkkhuXEnsahPH9PUdLlHEjIyYz9rSv/ALIbggbZEvqcZfhyG0gHhgqiGcGpVtdZlNdHgR1hQWyr1p3ONKcs3IvC7IJ94jzxA6fh9iONAdQgWic+cY1A2TUL8uD9KdTrVdKgCAwJUGkEisDYrlSCgSFsfac4SM4+9CINLVWYiVAEFfKgFgw5qanBJxuiOghzzr9IrNKa/CPmN8FiboSWTBYrnzz9JcipDSitdyPY8CoIFFXInBZkJMJmWtqRDzLlYtuCWSmK9ElGQZ5CgbpUXHyNUfQOzejvDyuqHotkJnOWM0/1IqAPAHTl5ip0ww41A5Sv4xSO26wsD44cCJQRJP8Dyk4rXc5NB2EvbKFAJqI1GDBOY9L1G+/AToZcCqjfA/hAAAAAElFTkSuQmCC>\n==Marcus manifest\n//<size:12>[Next]</size>//\n\n Temporary API for Marcus IIIF manifests." <<container>> as marcusManifest
database "==Marcus SPARQL endpoint\n//<size:12>[Fuseki]</size>//\n\n Data endpoint for Marcus." <<container>> as sparql
database "==SPARQL endpoint\n//<size:12>[Fuseki]</size>//\n\n Data endpoint for Marcus." <<container>> as sparql
rectangle "==Next app\n<size:12>[Container]</size>" <<boundary>> as next [[img:data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAABm0lEQVRoQ92Z25LDMAhDt///0dtJpu4kDhgBimPaZ0x0LPCtrz/+7x9I+QJiXCGshIj4kbC0jkyCrHgNLKQpMugugCOYW5d3wAyIEBAKMhvADYOAPAkBA1kgq0A0IFXvCGQ1iCGMBrIqxAYjaq4IIsJIICu7oTZ/D1IF4uJKZZATzBGkkhuXEnsahPH9PUdLlHEjIyYz9rSv/ALIbggbZEvqcZfhyG0gHhgqiGcGpVtdZlNdHgR1hQWyr1p3ONKcs3IvC7IJ94jzxA6fh9iONAdQgWic+cY1A2TUL8uD9KdTrVdKgCAwJUGkEisDYrlSCgSFsfac4SM4+9CINLVWYiVAEFfKgFgw5qanBJxuiOghzzr9IrNKa/CPmN8FiboSWTBYrnzz9JcipDSitdyPY8CoIFFXInBZkJMJmWtqRDzLlYtuCWSmK9ElGQZ5CgbpUXHyNUfQOzejvDyuqHotkJnOWM0/1IqAPAHTl5ip0ww41A5Sv4xSO26wsD44cCJQRJP8Dyk4rXc5NB2EvbKFAJqI1GDBOY9L1G+/AToZcCqjfA/hAAAAAElFTkSuQmCC]] {
rectangle "==Next app\n<size:12>[Container]</size>" <<boundary>> as next [[img:data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAABm0lEQVRoQ92Z25LDMAhDt///0dtJpu4kDhgBimPaZ0x0LPCtrz/+7x9I+QJiXCGshIj4kbC0jkyCrHgNLKQpMugugCOYW5d3wAyIEBAKMhvADYOAPAkBA1kgq0A0IFXvCGQ1iCGMBrIqxAYjaq4IIsJIICu7oTZ/D1IF4uJKZZATzBGkkhuXEnsahPH9PUdLlHEjIyYz9rSv/ALIbggbZEvqcZfhyG0gHhgqiGcGpVtdZlNdHgR1hQWyr1p3ONKcs3IvC7IJ94jzxA6fh9iONAdQgWic+cY1A2TUL8uD9KdTrVdKgCAwJUGkEisDYrlSCgSFsfac4SM4+9CINLVWYiVAEFfKgFgw5qanBJxuiOghzzr9IrNKa/CPmN8FiboSWTBYrnzz9JcipDSitdyPY8CoIFFXInBZkJMJmWtqRDzLlYtuCWSmK9ElGQZ5CgbpUXHyNUfQOzejvDyuqHotkJnOWM0/1IqAPAHTl5ip0ww41A5Sv4xSO26wsD44cCJQRJP8Dyk4rXc5NB2EvbKFAJqI1GDBOY9L1G+/AToZcCqjfA/hAAAAAElFTkSuQmCC]] {
rectangle "==Pages\n<size:12>[Container]</size>" <<boundary>> as app {
rectangle "==Pages\n<size:12>[Container]</size>" <<boundary>> as app {
rectangle "==/items\n//<size:12>[Route]</size>//\n\n Serves static pages." <<component>> as pages
rectangle "==/items\n//<size:12>[Route]</size>//\n\n Serves static page." <<component>> as pages
rectangle "==/[id]\n//<size:12>[Route]</size>//\n\n Serves static pages." <<component>> as id
rectangle "==/[id]\n//<size:12>[Route]</size>//\n\n Serves static page based on id variable." <<component>> as id
}
}
rectangle "==Server side API\n<size:12>[Container]</size>" <<boundary>> as api {
rectangle "==Server side API\n<size:12>[Container]</size>" <<boundary>> as api {
rectangle "==/api/manifest/[id]\n//<size:12>[Route]</size>//\n\n Fetch basic metadata and connected images by id from Sanity DB" <<component>> as api_manifest
rectangle "==/api/manifest/[id]\n//<size:12>[Route]</size>//\n\n Fetch basic metadata and connected images by id from Sanity DB" <<component>> as api_manifest
}
}
rectangle "==Components\n<size:12>[Container]</size>" <<boundary>> as components {
rectangle "==/miradorViewer\n//<size:12>[React]</size>//\n\n Fetch basic metadata and connected images by id from Sanity DB" <<component>> as mirador_viewer