diff --git a/Ablauf_Sequenzdiagramm.svg b/Ablauf_Sequenzdiagramm.svg
new file mode 100644
index 0000000000000000000000000000000000000000..40c5510167f721edacda6a952a93bc1688b97dcf
--- /dev/null
+++ b/Ablauf_Sequenzdiagramm.svg
@@ -0,0 +1 @@
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="604" height="1672"><desc>%23%20https%3A%2F%2Fsequencediagram.org%2F%0A%0Atitle%20Multiplayer%20Session%20Ablauf%0A%0Aparticipant%20Host%0Aparticipant%20Client%0A%0AHost-%3EHost%3AStartSession()%0Aactivate%20Host%0A%0AClient-%3EClient%3AJoinSession()%0Aactivate%20Client%0AHost-%3EClient%3AHELLO%0Aactivate%20Client%0AHost%3C--Client%3AHELLO_ACK%0Adeactivateafter%20Client%0A%0AHost-%3EClient%3A%20START%0Aactivate%20Client%0AClient--%3EHost%3ASTART_ACK%0Adeactivateafter%20Client%0A%0Aloop%20See%20Condition%0Anote%20over%20Host%2CClient%3A%20**Condition%3A**%5Cn%20%5Bhost.shipsPlaced%20%3E%3D%200%20%7C%7C%20host.isReady%20%3D%3D%20false%20%7C%7C%20%5Cn%20%20client.shipsPlaced%20%3E%3D%200%20%7C%7C%20%20client.isReady%20%3D%3D%20false%5D%0A%20%20Host-%3E(1)Client%3AREADY_PING%0A%20%20activate%20Client%0A%20%20alt%20client.shipsPlaced%20%3E%3D%200%20%26%26%20client.isReady%20%3D%3D%20false%0A%20%20%09Host%3C--Client%3AREADY_PING%0A%20%20else%20client.shipsPlaced%20%3D%3D%200%20%26%26%20client.isReady%20%3D%3D%20true%0A%20%20%09%09Host%3C--Client%3AREADY_CHK%0A%20%20%20%20%20%20%20%20deactivateafter%20Client%0A%20%20end%0Aend%0A%0AHost-%3EClient%3ABEGIN%0Aactivate%20Client%0AHost%3C--Client%3ABEGIN_ACK%0Adeactivateafter%20Client%0A%0Aloop%20game.hasEnded%20%3D%3D%20false%0A%09alt%20host.hasTurn%0A%20%20%20%20%20%20%20%20Host-%3EClient%3AFIRE%0A%20%20%20%20%20%20%20%20activate%20Client%0A%20%20%20%20%20%20%20%20Host%3C--Client%3AFIRE_ACK%0A%09%09deactivateafter%20Client%0A%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20note%20over%20Host%2CClient%3A%20game.hasEnded%20%3D%20true%0A%09else%20client.hasTurn%0A%20%20%20%20%20%20%20%20Client-%3EHost%3AFIRE%0A%20%20%20%20%20%20%20%20activate%20Host%0A%20%20%20%20%20%20%20%20Client%3C--Host%3AFIRE_ACK%0A%20%20%20%20%20%20%20%20deactivateafter%20Host%0A%0A%09%09note%20over%20Host%2CClient%3A%20game.hasEnded%20%3D%20true%0A%09end%0Aend%20%0A%0AHost-%3EClient%3AEND%0Aactivate%20Client%0AHost%3C--Client%3AEND_ACK%0Adeactivateafter%20Client%0A%0Adeactivateafter%20Host%0AHost--%3EClient%3ABYE%0Adestroy%20Host%0Adeactivate%20Client%0Adestroyafter%20Client</desc><defs/><g><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g><rect fill="white" stroke="none" x="0" y="0" width="604" height="1672"/></g><g><text fill="black" stroke="none" font-family="sans-serif" font-size="16.5pt" font-style="normal" font-weight="normal" text-decoration="normal" x="172.49115508509112" y="24.50280495" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">Multiplayer Session Ablauf</text></g><g/><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 98.01121979999999 95.887643371 L 98.01121979999999 1561.5937660445825" stroke-miterlimit="10" stroke-width="1.3612669416666667" stroke-dasharray="12.565541,5.445067766666667"/><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 468.84922804999997 95.887643371 L 468.84922804999997 1600.7982539645823" stroke-miterlimit="10" stroke-width="1.3612669416666667" stroke-dasharray="12.565541,5.445067766666667"/></g><g><path fill="none" stroke="none"/><g><path fill="white" stroke="black" paint-order="fill stroke markers" d=" M 65.2875242195 51.782594461 L 130.7349153805 51.782594461 L 130.7349153805 95.887643371 L 65.2875242195 95.887643371 L 65.2875242195 51.782594461 Z" stroke-miterlimit="10" stroke-width="2.613632528" stroke-dasharray=""/></g><g><g/><text fill="black" stroke="none" font-family="sans-serif" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="83.01121979999999" y="79.55244007099999" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">Host</text></g><path fill="none" stroke="none"/><g><path fill="white" stroke="black" paint-order="fill stroke markers" d=" M 432.62553246949994 51.782594461 L 505.0729236305 51.782594461 L 505.0729236305 95.887643371 L 432.62553246949994 95.887643371 L 432.62553246949994 51.782594461 Z" stroke-miterlimit="10" stroke-width="2.613632528" stroke-dasharray=""/></g><g><g/><text fill="black" stroke="none" font-family="sans-serif" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="450.34922804999997" y="79.55244007099999" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">Client</text></g></g><g><path fill="white" stroke="black" paint-order="fill stroke markers" d=" M 89.84361815 171.029578551 L 106.17882144999999 171.029578551 L 106.17882144999999 1527.2898391145825 L 89.84361815 1527.2898391145825 L 89.84361815 171.029578551" stroke-miterlimit="10" stroke-width="1.3612669416666667" stroke-dasharray=""/><path fill="white" stroke="black" paint-order="fill stroke markers" d=" M 460.68162639999997 238.00391208099998 L 477.01682969999996 238.00391208099998 L 477.01682969999996 1561.5937660445825 L 460.68162639999997 1561.5937660445825 L 460.68162639999997 238.00391208099998" stroke-miterlimit="10" stroke-width="1.3612669416666667" stroke-dasharray=""/><path fill="white" stroke="black" paint-order="fill stroke markers" d=" M 468.84922804999997 283.74248132099996 L 485.18443134999995 283.74248132099996 L 485.18443134999995 340.915692871 L 468.84922804999997 340.915692871 L 468.84922804999997 283.74248132099996" stroke-miterlimit="10" stroke-width="1.3612669416666667" stroke-dasharray=""/><path fill="white" stroke="black" paint-order="fill stroke markers" d=" M 468.84922804999997 375.21961980099996 L 485.18443134999995 375.21961980099996 L 485.18443134999995 432.392831351 L 468.84922804999997 432.392831351 L 468.84922804999997 375.21961980099996" stroke-miterlimit="10" stroke-width="1.3612669416666667" stroke-dasharray=""/><path fill="white" stroke="black" paint-order="fill stroke markers" d=" M 468.84922804999997 615.7854949745825 L 485.18443134999995 615.7854949745825 L 485.18443134999995 806.9073735845823 L 468.84922804999997 806.9073735845823 L 468.84922804999997 615.7854949745825" stroke-miterlimit="10" stroke-width="1.3612669416666667" stroke-dasharray=""/><path fill="white" stroke="black" paint-order="fill stroke markers" d=" M 468.84922804999997 890.2169104145823 L 485.18443134999995 890.2169104145823 L 485.18443134999995 947.3901219645822 L 468.84922804999997 947.3901219645822 L 468.84922804999997 890.2169104145823" stroke-miterlimit="10" stroke-width="1.3612669416666667" stroke-dasharray=""/><path fill="white" stroke="black" paint-order="fill stroke markers" d=" M 468.84922804999997 1069.9041467145823 L 485.18443134999995 1069.9041467145823 L 485.18443134999995 1127.0773582645825 L 468.84922804999997 1127.0773582645825 L 468.84922804999997 1069.9041467145823" stroke-miterlimit="10" stroke-width="1.3612669416666667" stroke-dasharray=""/><path fill="white" stroke="black" paint-order="fill stroke markers" d=" M 98.01121979999999 1267.5601066445824 L 114.34642309999998 1267.5601066445824 L 114.34642309999998 1324.7333181945826 L 98.01121979999999 1324.7333181945826 L 98.01121979999999 1267.5601066445824" stroke-miterlimit="10" stroke-width="1.3612669416666667" stroke-dasharray=""/><path fill="white" stroke="black" paint-order="fill stroke markers" d=" M 468.84922804999997 1470.1166275645824 L 485.18443134999995 1470.1166275645824 L 485.18443134999995 1527.2898391145825 L 468.84922804999997 1527.2898391145825 L 468.84922804999997 1470.1166275645824" stroke-miterlimit="10" stroke-width="1.3612669416666667" stroke-dasharray=""/><g><g><rect fill="white" stroke="none" x="125.50881202166664" y="128.558049971" width="98.90056099" height="21.23576429"/></g><text fill="black" stroke="none" font-family="sans-serif" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="127.95909251666664" y="143.259732941" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">StartSession()</text></g><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 98.01121979999999 149.793814261 L 171.51963465 149.793814261 L 171.51963465 171.029578551 L 119.62813883366665 171.029578551" stroke-miterlimit="10" stroke-width="1.3612669416666667" stroke-dasharray=""/><g transform="translate(106.17882144999999,171.029578551) translate(-106.17882144999999,-171.029578551)"><path fill="black" stroke="none" paint-order="stroke fill markers" d=" M 119.79149086666665 164.22324384266665 L 106.17882144999999 171.029578551 L 119.79149086666665 177.83591325933332 Z"/></g></g><g><g><rect fill="white" stroke="none" x="496.3468202716666" y="195.53238350099997" width="93.90056099" height="21.23576429"/></g><text fill="black" stroke="none" font-family="sans-serif" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="498.79710076666663" y="210.23406647099995" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">JoinSession()</text></g><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 468.84922804999997 216.768147791 L 542.3576429 216.768147791 L 542.3576429 238.00391208099998 L 490.4661470836666 238.00391208099998" stroke-miterlimit="10" stroke-width="1.3612669416666667" stroke-dasharray=""/><g transform="translate(477.01682969999996,238.00391208099998) translate(-477.01682969999996,-238.00391208099998)"><path fill="black" stroke="none" paint-order="stroke fill markers" d=" M 490.62949911666664 231.19757737266664 L 477.01682969999996 238.00391208099998 L 490.62949911666664 244.81024678933332 Z"/></g></g><g><g><rect fill="white" stroke="none" x="261.06374425499996" y="262.50671703099994" width="52.90056099" height="21.23576429"/></g><text fill="black" stroke="none" font-family="sans-serif" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="263.51402475" y="277.2084000009999" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">HELLO</text></g><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 106.17882144999999 283.74248132099996 L 455.3999106663333 283.74248132099996" stroke-miterlimit="10" stroke-width="1.3612669416666667" stroke-dasharray=""/><g transform="translate(468.84922804999997,283.74248132099996) translate(-468.84922804999997,-283.74248132099996)"><path fill="black" stroke="none" paint-order="stroke fill markers" d=" M 455.2365586333333 276.9361466126666 L 468.84922804999997 283.74248132099996 L 455.2365586333333 290.5488160293333 Z"/></g></g><g><g><rect fill="white" stroke="none" x="242.063744255" y="308.24528627099994" width="90.90056099" height="21.23576429"/></g><text fill="black" stroke="none" font-family="sans-serif" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="244.51402474999998" y="322.9469692409999" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">HELLO_ACK</text></g><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 468.84922804999997 329.48105056099996 L 119.62813883366665 329.48105056099996" stroke-miterlimit="10" stroke-width="1.3612669416666667" stroke-dasharray="6.53408132"/><g transform="translate(106.17882144999999,329.48105056099996) translate(-106.17882144999999,-329.48105056099996)"><path fill="black" stroke="none" paint-order="stroke fill markers" d=" M 119.79149086666665 322.6747158526666 L 106.17882144999999 329.48105056099996 L 119.79149086666665 336.2873852693333 Z"/></g></g><g><g><rect fill="white" stroke="none" x="261.56374425499996" y="353.98385551099994" width="51.90056099" height="21.23576429"/></g><text fill="black" stroke="none" font-family="sans-serif" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="264.01402475" y="368.6855384809999" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">START</text></g><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 106.17882144999999 375.21961980099996 L 455.3999106663333 375.21961980099996" stroke-miterlimit="10" stroke-width="1.3612669416666667" stroke-dasharray=""/><g transform="translate(468.84922804999997,375.21961980099996) translate(-468.84922804999997,-375.21961980099996)"><path fill="black" stroke="none" paint-order="stroke fill markers" d=" M 455.2365586333333 368.4132850926666 L 468.84922804999997 375.21961980099996 L 455.2365586333333 382.0259545093333 Z"/></g></g><g><g><rect fill="white" stroke="none" x="242.563744255" y="399.72242475099995" width="89.90056099" height="21.23576429"/></g><text fill="black" stroke="none" font-family="sans-serif" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="245.01402474999998" y="414.4241077209999" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">START_ACK</text></g><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 468.84922804999997 420.95818904099997 L 119.62813883366665 420.95818904099997" stroke-miterlimit="10" stroke-width="1.3612669416666667" stroke-dasharray="6.53408132"/><g transform="translate(106.17882144999999,420.95818904099997) translate(-106.17882144999999,-420.95818904099997)"><path fill="black" stroke="none" paint-order="stroke fill markers" d=" M 119.79149086666665 414.15185433266663 L 106.17882144999999 420.95818904099997 L 119.79149086666665 427.7645237493333 Z"/></g></g><path fill="white" stroke="black" paint-order="fill stroke markers" d=" M 83.30953682999998 489.56604290099995 L 468.84922804999997 489.56604290099995 L 483.55091101999994 504.2677258709999 L 483.55091101999994 559.8074170909999 L 83.30953682999998 559.8074170909999 L 83.30953682999998 489.56604290099995 M 468.84922804999997 489.56604290099995 L 468.84922804999997 504.2677258709999 L 483.55091101999994 504.2677258709999" stroke-miterlimit="10" stroke-width="1.3612669416666667" stroke-dasharray=""/><g><text fill="black" stroke="none" font-family="sans-serif" font-size="11pt" font-style="normal" font-weight="bold" text-decoration="normal" x="118.43022392499995" y="512.435327521" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">Condition:</text><text fill="black" stroke="none" font-family="sans-serif" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="118.43022392499995" y="528.770530821" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve"> [host.shipsPlaced &gt;= 0 || host.isReady == false || </text><text fill="black" stroke="none" font-family="sans-serif" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="118.43022392499995" y="545.105734121" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">  client.shipsPlaced &gt;= 0 ||  client.isReady == false]</text></g><g><g><rect fill="white" stroke="none" x="239.063744255" y="584.3102220409999" width="96.90056099" height="21.23576429"/></g><text fill="black" stroke="none" font-family="sans-serif" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="241.51402474999998" y="599.0119050109998" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">READY_PING</text></g><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 106.17882144999999 599.4502916745826 L 455.41353247918 615.1803316785645" stroke-miterlimit="10" stroke-width="1.3612669416666667" stroke-dasharray=""/><g transform="translate(468.84922804999997,615.7854949745825) rotate(2.578942301377016,0,0) translate(-468.84922804999997,-615.7854949745825)"><path fill="black" stroke="none" paint-order="stroke fill markers" d=" M 455.2365586333333 608.9791602662492 L 468.84922804999997 615.7854949745825 L 455.2365586333333 622.5918296829159 Z"/><g transform="rotate(-2.578942301377016,0,0)"/></g></g><g><g><rect fill="white" stroke="none" x="239.063744255" y="684.3933488345824" width="96.90056099" height="21.23576429"/></g><text fill="black" stroke="none" font-family="sans-serif" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="241.51402474999998" y="699.0950318045824" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">READY_PING</text></g><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 468.84922804999997 705.6291131245824 L 119.62813883366665 705.6291131245824" stroke-miterlimit="10" stroke-width="1.3612669416666667" stroke-dasharray="6.53408132"/><g transform="translate(106.17882144999999,705.6291131245824) translate(-106.17882144999999,-705.6291131245824)"><path fill="black" stroke="none" paint-order="stroke fill markers" d=" M 119.79149086666665 698.8227784162491 L 106.17882144999999 705.6291131245824 L 119.79149086666665 712.4354478329158 Z"/></g></g><g><g><rect fill="white" stroke="none" x="240.563744255" y="774.2369669845823" width="93.90056099" height="21.23576429"/></g><text fill="black" stroke="none" font-family="sans-serif" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="243.01402474999998" y="788.9386499545823" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">READY_CHK</text></g><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 468.84922804999997 795.4727312745823 L 119.62813883366665 795.4727312745823" stroke-miterlimit="10" stroke-width="1.3612669416666667" stroke-dasharray="6.53408132"/><g transform="translate(106.17882144999999,795.4727312745823) translate(-106.17882144999999,-795.4727312745823)"><path fill="black" stroke="none" paint-order="stroke fill markers" d=" M 119.79149086666665 788.666396566249 L 106.17882144999999 795.4727312745823 L 119.79149086666665 802.2790659829157 Z"/></g></g><g><g><rect fill="white" stroke="none" x="263.06374425499996" y="868.9811461245823" width="48.90056099" height="21.23576429"/></g><text fill="black" stroke="none" font-family="sans-serif" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="265.51402475" y="883.6828290945823" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">BEGIN</text></g><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 106.17882144999999 890.2169104145823 L 455.3999106663333 890.2169104145823" stroke-miterlimit="10" stroke-width="1.3612669416666667" stroke-dasharray=""/><g transform="translate(468.84922804999997,890.2169104145823) translate(-468.84922804999997,-890.2169104145823)"><path fill="black" stroke="none" paint-order="stroke fill markers" d=" M 455.2365586333333 883.410575706249 L 468.84922804999997 890.2169104145823 L 455.2365586333333 897.0232451229157 Z"/></g></g><g><g><rect fill="white" stroke="none" x="244.063744255" y="914.7197153645823" width="86.90056099" height="21.23576429"/></g><text fill="black" stroke="none" font-family="sans-serif" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="246.51402474999998" y="929.4213983345822" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">BEGIN_ACK</text></g><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 468.84922804999997 935.9554796545823 L 119.62813883366665 935.9554796545823" stroke-miterlimit="10" stroke-width="1.3612669416666667" stroke-dasharray="6.53408132"/><g transform="translate(106.17882144999999,935.9554796545823) translate(-106.17882144999999,-935.9554796545823)"><path fill="black" stroke="none" paint-order="stroke fill markers" d=" M 119.79149086666665 929.149144946249 L 106.17882144999999 935.9554796545823 L 119.79149086666665 942.7618143629156 Z"/></g></g><g><g><rect fill="white" stroke="none" x="268.56374425499996" y="1048.6683824245824" width="37.90056099" height="21.23576429"/></g><text fill="black" stroke="none" font-family="sans-serif" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="271.01402475" y="1063.3700653945825" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">FIRE</text></g><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 106.17882144999999 1069.9041467145823 L 455.3999106663333 1069.9041467145823" stroke-miterlimit="10" stroke-width="1.3612669416666667" stroke-dasharray=""/><g transform="translate(468.84922804999997,1069.9041467145823) translate(-468.84922804999997,-1069.9041467145823)"><path fill="black" stroke="none" paint-order="stroke fill markers" d=" M 455.2365586333333 1063.0978120062491 L 468.84922804999997 1069.9041467145823 L 455.2365586333333 1076.7104814229156 Z"/></g></g><g><g><rect fill="white" stroke="none" x="249.563744255" y="1094.4069516645825" width="75.90056099" height="21.23576429"/></g><text fill="black" stroke="none" font-family="sans-serif" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="252.01402474999998" y="1109.1086346345826" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">FIRE_ACK</text></g><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 468.84922804999997 1115.6427159545824 L 119.62813883366665 1115.6427159545824" stroke-miterlimit="10" stroke-width="1.3612669416666667" stroke-dasharray="6.53408132"/><g transform="translate(106.17882144999999,1115.6427159545824) translate(-106.17882144999999,-1115.6427159545824)"><path fill="black" stroke="none" paint-order="stroke fill markers" d=" M 119.79149086666665 1108.8363812462492 L 106.17882144999999 1115.6427159545824 L 119.79149086666665 1122.4490506629156 Z"/></g></g><path fill="white" stroke="black" paint-order="fill stroke markers" d=" M 83.30953682999998 1140.1455209045823 L 468.84922804999997 1140.1455209045823 L 483.55091101999994 1154.8472038745824 L 483.55091101999994 1177.7164884945823 L 83.30953682999998 1177.7164884945823 L 83.30953682999998 1140.1455209045823 M 468.84922804999997 1140.1455209045823 L 468.84922804999997 1154.8472038745824 L 483.55091101999994 1154.8472038745824" stroke-miterlimit="10" stroke-width="1.3612669416666667" stroke-dasharray=""/><g><text fill="black" stroke="none" font-family="sans-serif" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="208.93022392499995" y="1163.0148055245825" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">game.hasEnded = true</text></g><g><g><rect fill="white" stroke="none" x="268.56374425499996" y="1246.3243423545825" width="37.90056099" height="21.23576429"/></g><text fill="black" stroke="none" font-family="sans-serif" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="271.01402475" y="1261.0260253245826" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">FIRE</text></g><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 460.68162639999997 1267.5601066445824 L 127.79574048366666 1267.5601066445824" stroke-miterlimit="10" stroke-width="1.3612669416666667" stroke-dasharray=""/><g transform="translate(114.3464231,1267.5601066445824) translate(-114.3464231,-1267.5601066445824)"><path fill="black" stroke="none" paint-order="stroke fill markers" d=" M 127.95909251666666 1260.7537719362492 L 114.3464231 1267.5601066445824 L 127.95909251666666 1274.3664413529157 Z"/></g></g><g><g><rect fill="white" stroke="none" x="249.563744255" y="1292.0629115945826" width="75.90056099" height="21.23576429"/></g><text fill="black" stroke="none" font-family="sans-serif" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="252.01402474999998" y="1306.7645945645827" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">FIRE_ACK</text></g><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 114.3464231 1313.2986758845825 L 447.2323090163333 1313.2986758845825" stroke-miterlimit="10" stroke-width="1.3612669416666667" stroke-dasharray="6.53408132"/><g transform="translate(460.68162639999997,1313.2986758845825) translate(-460.68162639999997,-1313.2986758845825)"><path fill="black" stroke="none" paint-order="stroke fill markers" d=" M 447.0689569833333 1306.4923411762493 L 460.68162639999997 1313.2986758845825 L 447.0689569833333 1320.1050105929157 Z"/></g></g><path fill="white" stroke="black" paint-order="fill stroke markers" d=" M 83.30953682999998 1337.8014808345824 L 468.84922804999997 1337.8014808345824 L 483.55091101999994 1352.5031638045825 L 483.55091101999994 1375.3724484245824 L 83.30953682999998 1375.3724484245824 L 83.30953682999998 1337.8014808345824 M 468.84922804999997 1337.8014808345824 L 468.84922804999997 1352.5031638045825 L 483.55091101999994 1352.5031638045825" stroke-miterlimit="10" stroke-width="1.3612669416666667" stroke-dasharray=""/><g><text fill="black" stroke="none" font-family="sans-serif" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="208.93022392499995" y="1360.6707654545826" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">game.hasEnded = true</text></g><g><g><rect fill="white" stroke="none" x="269.56374425499996" y="1448.8808632745825" width="35.90056099" height="21.23576429"/></g><text fill="black" stroke="none" font-family="sans-serif" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="272.01402475" y="1463.5825462445825" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">END</text></g><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 106.17882144999999 1470.1166275645824 L 455.3999106663333 1470.1166275645824" stroke-miterlimit="10" stroke-width="1.3612669416666667" stroke-dasharray=""/><g transform="translate(468.84922804999997,1470.1166275645824) translate(-468.84922804999997,-1470.1166275645824)"><path fill="black" stroke="none" paint-order="stroke fill markers" d=" M 455.2365586333333 1463.3102928562491 L 468.84922804999997 1470.1166275645824 L 455.2365586333333 1476.9229622729156 Z"/></g></g><g><g><rect fill="white" stroke="none" x="250.563744255" y="1494.6194325145825" width="73.90056099" height="21.23576429"/></g><text fill="black" stroke="none" font-family="sans-serif" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="253.01402474999998" y="1509.3211154845826" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">END_ACK</text></g><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 468.84922804999997 1515.8551968045824 L 119.62813883366665 1515.8551968045824" stroke-miterlimit="10" stroke-width="1.3612669416666667" stroke-dasharray="6.53408132"/><g transform="translate(106.17882144999999,1515.8551968045824) translate(-106.17882144999999,-1515.8551968045824)"><path fill="black" stroke="none" paint-order="stroke fill markers" d=" M 119.79149086666665 1509.0488620962492 L 106.17882144999999 1515.8551968045824 L 119.79149086666665 1522.6615315129156 Z"/></g></g><g><g><rect fill="white" stroke="none" x="262.39614260499997" y="1540.3580017545826" width="33.90056099" height="21.23576429"/></g><text fill="black" stroke="none" font-family="sans-serif" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="264.8464231" y="1555.0596847245827" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">BYE</text></g><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 98.01121979999999 1561.5937660445825 L 447.2323090163333 1561.5937660445825" stroke-miterlimit="10" stroke-width="1.3612669416666667" stroke-dasharray="6.53408132"/><g transform="translate(460.68162639999997,1561.5937660445825) translate(-460.68162639999997,-1561.5937660445825)"><path fill="black" stroke="none" paint-order="stroke fill markers" d=" M 447.0689569833333 1554.7874313362493 L 460.68162639999997 1561.5937660445825 L 447.0689569833333 1568.4001007529157 Z"/></g></g><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 83.30953682999998 1546.8920830745824 L 112.71290277 1576.2954490145826 M 112.71290277 1546.8920830745824 L 83.30953682999998 1576.2954490145826" stroke-miterlimit="10" stroke-width="2.613632528" stroke-dasharray=""/></g><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 454.14754508 1586.0965709945822 L 483.55091101999994 1615.4999369345824 M 483.55091101999994 1586.0965709945822 L 454.14754508 1615.4999369345824" stroke-miterlimit="10" stroke-width="2.613632528" stroke-dasharray=""/></g><g><g/><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 16.335203299999996 445.46099399099995 L 542.3576429 445.46099399099995 L 542.3576429 844.4783411745824 L 16.335203299999996 844.4783411745824 L 16.335203299999996 445.46099399099995 Z" stroke-miterlimit="10" stroke-width="2.3336004714285714" stroke-dasharray=""/><path fill="white" stroke="black" paint-order="fill stroke markers" d=" M 16.335203299999996 445.46099399099995 L 16.335203299999996 465.06323795099996 L 73.0056099 465.06323795099996 L 82.80673188 455.26211597099996 L 82.80673188 445.46099399099995 L 16.335203299999996 445.46099399099995" stroke-miterlimit="10" stroke-width="2.3336004714285714" stroke-dasharray=""/><text fill="black" stroke="none" font-family="sans-serif" font-size="8.8pt" font-style="normal" font-weight="bold" text-decoration="normal" x="32.67040659999999" y="458.529156631" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">loop</text><g><rect fill="white" stroke="none" x="96.691654685" y="446.767810255" width="90.90056099" height="16.988611432000003"/></g><text fill="black" stroke="none" font-family="sans-serif" font-size="8.8pt" font-style="normal" font-weight="bold" text-decoration="normal" x="99.14193518" y="458.529156631" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">[See Condition]</text></g><g><g/><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 32.67040659999999 640.2882999245825 L 526.0224396 640.2882999245825 L 526.0224396 819.9755362245824 L 32.67040659999999 819.9755362245824 L 32.67040659999999 640.2882999245825 Z" stroke-miterlimit="10" stroke-width="2.3336004714285714" stroke-dasharray=""/><path fill="white" stroke="black" paint-order="fill stroke markers" d=" M 32.67040659999999 640.2882999245825 L 32.67040659999999 659.8905438845825 L 79.34081319999999 659.8905438845825 L 89.14193517999999 650.0894219045824 L 89.14193517999999 640.2882999245825 L 32.67040659999999 640.2882999245825" stroke-miterlimit="10" stroke-width="2.3336004714285714" stroke-dasharray=""/><text fill="black" stroke="none" font-family="sans-serif" font-size="8.8pt" font-style="normal" font-weight="bold" text-decoration="normal" x="49.005609899999996" y="653.3564625645824" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">alt</text><g><rect fill="white" stroke="none" x="103.02685798499999" y="641.5951161885824" width="294.90056099" height="16.988611432000003"/></g><text fill="black" stroke="none" font-family="sans-serif" font-size="8.8pt" font-style="normal" font-weight="bold" text-decoration="normal" x="105.47713848" y="653.3564625645824" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">[client.shipsPlaced &gt;= 0 &amp;&amp; client.isReady == false]</text><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 32.67040659999999 730.1319180745824 L 526.0224396 730.1319180745824" stroke-miterlimit="10" stroke-width="2.3336004714285714" stroke-dasharray="4.083800825"/></g><g/><g><rect fill="white" stroke="none" x="103.02685798499999" y="731.4387343385823" width="289.90056099" height="16.988611432000003"/></g><text fill="black" stroke="none" font-family="sans-serif" font-size="8.8pt" font-style="normal" font-weight="bold" text-decoration="normal" x="105.47713848" y="743.2000807145823" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">[client.shipsPlaced == 0 &amp;&amp; client.isReady == true]</text></g><g/><g><g/><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 8.167601649999998 960.4582846045822 L 542.3576429 960.4582846045822 L 542.3576429 1424.3780583245823 L 8.167601649999998 1424.3780583245823 L 8.167601649999998 960.4582846045822 Z" stroke-miterlimit="10" stroke-width="2.3336004714285714" stroke-dasharray=""/><path fill="white" stroke="black" paint-order="fill stroke markers" d=" M 8.167601649999998 960.4582846045822 L 8.167601649999998 980.0605285645822 L 64.83800825 980.0605285645822 L 74.63913023 970.2594065845822 L 74.63913023 960.4582846045822 L 8.167601649999998 960.4582846045822" stroke-miterlimit="10" stroke-width="2.3336004714285714" stroke-dasharray=""/><text fill="black" stroke="none" font-family="sans-serif" font-size="8.8pt" font-style="normal" font-weight="bold" text-decoration="normal" x="24.502804949999998" y="973.5264472445822" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">loop</text><g><rect fill="white" stroke="none" x="88.52405303500001" y="961.7651008685822" width="151.90056099" height="16.988611432000003"/></g><text fill="black" stroke="none" font-family="sans-serif" font-size="8.8pt" font-style="normal" font-weight="bold" text-decoration="normal" x="90.97433353000001" y="973.5264472445822" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">[game.hasEnded == false]</text></g><g><g/><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 24.502804949999994 1004.5633335145823 L 526.0224396 1004.5633335145823 L 526.0224396 1399.8752533745824 L 24.502804949999994 1399.8752533745824 L 24.502804949999994 1004.5633335145823 Z" stroke-miterlimit="10" stroke-width="2.3336004714285714" stroke-dasharray=""/><path fill="white" stroke="black" paint-order="fill stroke markers" d=" M 24.502804949999994 1004.5633335145823 L 24.502804949999994 1024.1655774745823 L 71.17321154999999 1024.1655774745823 L 80.97433353 1014.3644554945822 L 80.97433353 1004.5633335145823 L 24.502804949999994 1004.5633335145823" stroke-miterlimit="10" stroke-width="2.3336004714285714" stroke-dasharray=""/><text fill="black" stroke="none" font-family="sans-serif" font-size="8.8pt" font-style="normal" font-weight="bold" text-decoration="normal" x="40.838008249999994" y="1017.6314961545822" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">alt</text><g><rect fill="white" stroke="none" x="94.859256335" y="1005.8701497785822" width="86.90056099" height="16.988611432000003"/></g><text fill="black" stroke="none" font-family="sans-serif" font-size="8.8pt" font-style="normal" font-weight="bold" text-decoration="normal" x="97.30953683" y="1017.6314961545822" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">[host.hasTurn]</text><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 24.502804949999994 1202.2192934445825 L 526.0224396 1202.2192934445825" stroke-miterlimit="10" stroke-width="2.3336004714285714" stroke-dasharray="4.083800825"/></g><g/><g><rect fill="white" stroke="none" x="94.859256335" y="1203.5261097085825" width="92.90056099" height="16.988611432000003"/></g><text fill="black" stroke="none" font-family="sans-serif" font-size="8.8pt" font-style="normal" font-weight="bold" text-decoration="normal" x="97.30953683" y="1215.2874560845823" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">[client.hasTurn]</text></g><g/></g><g/><g/></g></svg>
\ No newline at end of file
diff --git a/Schnittstellendefinition_1.md b/Schnittstellendefinition_1.md
index 5b9b277929492d138829692c881e9d639e226b55..1a6c4441045ab1df16c680610195065f86db76a2 100644
--- a/Schnittstellendefinition_1.md
+++ b/Schnittstellendefinition_1.md
@@ -1,176 +1,322 @@
+<style>
+.opt {
+    color: #ed767e;
+    font-style: italic;
+}
+</style>
+
 # Schnittstellendefinition
+## Versionsübersicht
+1. ### [**API-Definition Version 1**](#v1)
 ## Allgemeines
-**Verwendete Netzwerktechnologie:**
+### Verwendete Netzwerktechnologie:
 - java.net.Socket
 - java.net.ServerSocket
 
-**Art des Datentransfers:**
+### Art des Datentransfers:
 - Plaintext
 
-**Andere Festlegungen:**
-- Semester wird direkt übetragen => Ob Spieler auf diesem spielen kann, wird nicht im Netzwerk behandelt
+### Standardport
+* 42069
+
+### Andere Festlegungen:
+- Für den Host ist es uninteressant, ob der Client berechtigt ist auf einem Semester zu spielen. Es existiert demnach keine zentrale "Registry", welche den Fortschritt aller Nutzer trackt. Diese Aufgabe übernimmt jeder Host/Client für sich selbst intern.
 - Schiffe mit der Größe `8-Credits <= 0` werden aufgeteilt in einzelne Schiffe der Größe `8-Credits/2`
+>    - <span style="color:orange">***ACHTUNG*** Eine Größe von `1` ist für eine sinnvolle implementierung einer KI ungeeignet. Es ist sinnvoller die Formel `max(8-Credits, 2)` zu verwenden.</span>
 
 
 
-**Semester - Schiffe**
- 
-1.  2, 2, 2, 2, 4, 6
-2.  2, 2, 2, 2, 2,
-3.  2, 2, 2, 2, 4, 6
-4.  2, 2, 2, 2, 4, 6
-5.  2, 2, 2, 3, 3, 6
-6.  2, 1, 1, 1, 6
+### **Schiffsgrößen nach Semester**
 
-## API-Definition Version 1
-### Trennzeichen
-";" => Befehle auslesen durch String.split(";");
+| Semester | Schiffe & Größen |
+| -------- | -------- |
+| 1         | {2, 2, 2, 2, 4, 6} |
+| 2         | {2, 2, 2, 2, 2}    |
+| 3         | {2, 2, 2, 2, 4, 6} |
+| 4         | {2, 2, 2, 2, 4, 6} |
+| 5         | {2, 2, 2, 3, 3, 6} |
+| 6         | {2, 1, 1, 1, 6}   |
 
-----
-### 1. HELLO
+
+# [**API-Definition Version 1**](#v1)<a id="v1"></a>
+### Ãœbersicht
+1. [Allgemeine Beschreibung der Kommunikation](#v1/general)
+    1. [Struktur einer Nachricht](#v1/general/msg_structure)
+    2. [Ablauf der Verbindung](#v1/general/connection_timeline)
+2. [Schnittstellenendpunkte](#v1/api)
+    * [HELLO](#v1/api/hello)
+    * [HELLO_ACK](#v1/api/hello_ack)
+    * [START](#v1/api/start)
+    * [START_ack](#v1/api/start_ack)
+    * [READY_PING](#v1/api/ready_ping)
+    * [READY_CHK](#ready_chk)
+    * [BEGIN](#v1/api/begin)
+    * [BEGIN_ACK](#v1/api/begin_ack)
+    * [FIRE](#v1/api/fire)
+    * [FIRE_ACK](#v1/api/fire_ack)
+    * [END](#v1/api/end)
+    * [END_ACK](#v1/api/end_ack)
+    * [BYE](#v1/api/bye)
+    * [ERR](#v1/api/err)
+
+
+## [Allgemeine Beschreibung der Kommunikation](#v1/general)<a id="v1/general"></a>
+### [Struktur einer Nachricht](#v1/general/msg_structure)<a id="v1/general/msg_structure"></a>
+Nachrichten sind aufgebaut nach dem Schema:
+```
+COMMAND;<ARGUMENT>[;[<OPTIONAL_ARG1>][;OPTIONAL_ARG2]]
+```
+Jeder Teil der Nachricht ist mit einem `;` getrennt. 
+Die Daten können in Java mithilfe von `String.split(";");` ausgelesen werden.
+
+<span class="opt">COMMAND:</span>
+Am Anfang steht immer der auszührende Befehl (*COMMAND*). Dieser gibt an, was ein Netzwerkteilnehmer tun soll.
+
+<span class="opt"><ARGUMENT>:</span>
+Auf den *COMMAND* folgen jegliche Argumente, die zwingend erforderlich sind.
+```
+COMMAND;ARGUMENT1;ARGUMENT2;...
+```
+    
+<span class="opt">[OPTIONAL_ARG]</span>:
+Auf das letzte *ARGUMENT* folgen alle optionalen Argumente.
+Sollte bspw. nur *OPTIONAL_ARG2* übergeben werden kann die Nachricht wie folgt übermittelt werden:
+```
+COMMAND;ARGUMENT;;OPTIONAL_ARG2
+```
+
+### [Ablauf der Verbindung](#v1/general/connection_timeline)<a id="v1/general/connection_timeline"></a>
+![](Ablauf_Sequenzdiagramm.svg)
+
+
+
+## [Schnittstellenendpunkte](#v1/api)<a id="v1/api"></a>
+### [HELLO](#v1/api/hello)<a id="v1/api/hello"></a>
 **Synopsis:**
 ```
-HELLO;<USERNAME>[;VERSION]
+HELLO;<VERSION>;<MAX_SEMESTER>;<USERNAME>
 ```
-**Description:**
-Wird durch den Client bei der Verbindung an den Host gesendet. Typischerweise die erste Nachricht.
-**Options:**
-* *USERNAME*: Name des hostenden Spielers
+
+**Beschreibung:**
+Die erste Nachricht der Verbindung und wird nach Herstellung der SocketVerbindung von dem Host an den Client gesendet.
+
+**Argumente:**
+* <span class="opt">VERSION:</span> Versionsnummer des Programms
+    * int: API_VERSION
+* <span class="opt">MAX_SEMESTER:</span> Höchstes spielbares Semester des Client
+    * int: Ganzzahl $\in$ [1,6]
+* <span class="opt">USERNAME:</span> Spielername des *Client*
     * String (UTF-8)
     * Maximale Länge: 255 Zeichen
-* *VERSION* (optional): Versionsnummer des Programms
+    
+**Antwort:**
+* [HELLO_ACK](#v1/api/hello_ack): Bestätigung der Verbindung durch den *Client*
+
+
+----
+### [HELLO_ACK](#v1/api/hello_ack)<a id="v1/api/start"></a>
+
+**Synopsis:**
+```
+HELLO_ACK;<VERSION>;<USERNAME>;<SEMESTER>
+```
+**Beschreibung:**
+Signalisiert de Start einer Session durch den *Host* an den *Client*.
+    
+*Diese Nachricht wird als Antwort auf eine [HELLO](#v1/api/hello)-Nachricht gesendet.*
+
+**Argumente:**
+* <span class="opt">VERSION:</span> Versionsnummer des Programms
     * int: API_VERSION
+* <span class="opt">SEMESTER:</span> Das Semester auf dem die Session gespielt werden wird
+    * **int**: Ganzzahl $\in$ [1,6]
+    * berechnet mit `min(hostSemester, clientSemester)`
+* <span class="opt">USERNAME:</span> Spielername des *Host*
+    * **String**: 
+        * Encoding Format: UTF-8
+        * Maximale Länge 255 Zeichen
 
 ----
-### 2. VERSION_SEND (Optional)
+### [START](#v1/api/start)<a id="v1/api/start"></a>
 **Synopsis:**
 ```
-VERSION_SEND;<VERSION>
+START
 ```
-**Seit Version:** 1
-**Description:**
-Einmalig vor Spielbeginn senden um dem Peer mitzuteilen welche Version des Protokolls man benutzt. Optional.  
-Wird nie ein ``VERSION_SEND`` empfangen, wird per Definition Version 1 benutzt.
-**Options:**
+**Beschreibung:**
+Infomiert den Client durch den Host dass das die Partie gestartet wird.
 
+**Antwort:**
+* [START_ACK](#v1/api/start_ack): Bestätigung des Partiebeginns durch den *Client*
+    
 ----
-### 3. VERSION_ACK
+### [START_ACK](#v1/api/start_ack)<a id="v1/api/start_ack"></a>
 **Synopsis:**
 ```
-VERSION_ACK;<VERSION>
+START_ACK
 ```
-**Description:**
-Einmalig vor Spielbeginn senden nachdem man das ``VERSION_SEND`` des Peers empfangen hat um sicher zu gehen dass die Version des Partners die Gleiche ist.
-**Options:**
-* *VERSION*: Versionsnummer des Programms
-    * int: API_VERSION
+**Beschreibung:**
+Bestätigt dem Host durch den Client, dass das die Partie gestartet wird.
+    
+*Diese Nachricht wird als Antwort auf eine [START](#v1/api/start)-Nachricht gesendet.*
+    
+----
+### [READY_PING](#v1/api/ready_ping)<a id="v1/api/ready_ping"></a>
+**Synopsis:**
+```
+READY_PING;<SHIPS_PLACED>
+```
+**Beschreibung:**
+Stellt eine Anfrage an den Client während der Vorbereitungsphase, wie viele Schiffe dieser Bereits plaziert hat.
+Sind alle Schiffe plaziert, wird stattdessen eine [READY_CHK](#v1/api/ready_chk)-Antwort vom Client gesendet.
 
+**Argumente:**
+* <span class="opt">SHIPS_PLACED:</span> Anzahl der noch nicht platzierten Schiffe
+    * **int**: Ganzzahl $\in$ (0, Anzahl der Schiffe]
+    
+**Antwort:**
+* [READY_PING](#v1/api/ready_ping): Nicht alle Schiffe wurden plaziert oder der Client ist nicht bereit fortzufahren
+* [READY_CHK](#v1/api/ready_chk): Alle Schiffe wurden plaziert und der Client ist bereit fortzufahren
+    
 ----
-### 4. SEMESTER_SEND
+### [READY_CHK](#v1/api/ready_chk)<a id="v1/api/ready_chk"></a>
 **Synopsis:**
 ```
-SEMESTER_SEND;<SEMESTER>
+READY_CHK
 ```
-**Description:**
-Einmalig vor Spielbeginn senden um dem Peer mitzuteilen in welchem Semestern man spiel.
-**Options:**
-* *SEMESTER*: Höchstes spielbares Semester des Sendenden
-    * int: Ganzzahl im Intervall [1,6]
+**Beschreibung:**
+Bestätigt das Platzieren sämtlicher Schiffe des Clients und dessen Bereitschaft mit der Partie zu beginnen.
+Das Senden einer extra Nachricht ermöglicht es dem Benutzer des Client ggfs. Änderungen seiner Schiffplatzierung vorzunehmen, auch wenn alle Schiffe platziert sind
+
 ----
-### 5. SEMESTER_ACK
+### [BEGIN](#v1/api/begin)<a id="v1/api/begin"></a>
 **Synopsis:**
 ```
-SEMESTER_ACK;<SEMESTER>
+BEGIN;<WHO>
 ```
-**Description:**
-Einmalig vor Spielbeginn senden um dem Peer mitzuteilen in welchem Semestern man spiel. Es wird ``min(meinSemester, peerSemester)`` als Semester ausgewählt. Nach Empfangen von SEMESTER_ACK kann begonnen werden die Schiffe zu setzen.
+**Beschreibung:**
+Signalisiert dem Client durch den Host, dass die Vorbereitungsphase beendet und das Spiel begonnen wird. Der Host entscheidet durch einen Münzwurf (Zufall), welche Seite beginnt.
 
-**Options:**
-* *SEMESTER*: min(meinSemester, peerSemester)
-    * int: Ganzzahl im Intervall [1,6]
+**Argumente:**
+* <span class="opt">WHO</span>: Der beginnende Spieler
+    * String ∈ { "host", "client" }
+
+**Antwort**
+* [FIRE_ACK](#v1/api/fire_ack): Die Nachricht vom Gegenspieler, dass der Spielzug akzeptiert wurde
+* [ERR](#v1/api/err): Die Nachricht konnte nicht vom Gegenspieler verarbeitet werden
+    * *ILLEGAL_STATE*: Der Sendende ist nicht am Zug    
 
 ----
-### 6. READY_CHECK
+### [BEGIN_ACK](#v1/api/begin_ack)<a id="v1/api/begin_ack"></a>
 **Synopsis:**
 ```
-READY_CHECK
+BEGIN_ACK;<WHO>
 ```
-**Description:**
-Sendet Nachricht für Bereitschafts-Überprüfung an anderen Spieler. Erwartet eine Antwort.
+**Beschreibung:**
+Signalisiert dem Host durch den Client, dass die Beendigung der Vorbereitungsphase und der Beginn des Spiels akzeptiert wurde.
 
+*Diese Nachricht wird als Antwort auf eine [BEGIN](#v1/api/begin)-Nachricht gesendet.*
+    
 ----
-### 7. READY_RESPONSE
+### [FIRE](#v1/api/fire)<a id="v1/api/fire"></a>
 **Synopsis:**
 ```
-READY_RESPONSE;<SHIPS_PLACED>
+FIRE;<ROW>;<COLUMN>
 ```
-**Description:**
+**Beschreibung:**
+Greift den Gegenspieler auf einer Koordinate an. Die 
 
-**Options:**
-* *SHIPS_PLACED*: Anzahl der noch nicht platzierten Schiffe
-    * int: Zahl im Intervall [0, Anzahl der nicht platzierten Schiffe]
+**Argumente:**
+* <span class="opt">ROW:</span> Das Feld im Spielfeld welches beschossen wird
+    * **int**: im Intervall [0, Spielfeldgröße-1]
+* <span class="opt">COLUMN:</span> Das Feld im Spielfeld welches beschossen wird
+    * **int**: im Intervall [0, Spielfeldgröße-1]
 
+**Antwort**
+* [FIRE_ACK](#v1/api/fire_ack): Die Nachricht vom Gegenspieler, dass der Spielzug akzeptiert wurde
+* [ERR](#v1/api/err): Die Nachricht konnte nicht vom Gegenspieler verarbeitet werden
+    * *ILLEGAL_STATE*: Der Sendende ist nicht am Zug
+    
 ----
-### 8. START
+### [FIRE_ACK](#v1/api/fire_ack)<a id="v1/api/fire_ack"></a>
 **Synopsis:**
 ```
-START;<WHO>
+FIRE_ACK;<TYPE>[;<GAME_OVER>]
 ```
-**Description:**
+**Beschreibung:**
+Gibt dem Gegenspieler eine Rückmeldung, ob der Angriff auf ein spezifisches Feld getroffen hat. Bei einem Treffer (oder Zerstörung) eines Schiffes durch den Gegner erhält dieser einen weiteren Angriff. 
+    
+*Diese Nachricht wird als Antwort auf eine [FIRE](#v1/api/fire)-Nachricht gesendet.*
 
-**Options:**
-* *WHO*: String ∈ { "YOU", "ME" }
+**Argumente:**
+* <span class="opt">TYPE:</span> Das Ergebnis des Angriffs
+    * **String** ∈ {"HIT", "MISS", "SUNK"}
+* <span class="opt">GAME_OVER:</span> Letztes Schiff des Sendenden versenkt
+    * **String** $\in$ {"true"}
 
 ----
-### 9. START_ACK
+### [END](#v1/api/end)<a id="v1/api/end"></a>
 **Synopsis:**
 ```
-START_ACK;<WHO>
+END;<WINNER>
 ```
-**Description:**
+**Beschreibung:**
+Bestätigt dem Client das Ende der Partie und teilt diesem das Ergebnis mit.
 
-**Options:**
-* *WHO*:
-    * String ∈ { "YOU", "ME" }
+**Argumente:**
+* <span class="opt">WINNER:</span> Das Ergebnis des Angriffs
+    * **String** $\in$ {"host", "client"}
 
+**Antwort**
+* [END_ACK](#v1/api/end_ack): Das Spielergebnis wurde akzeptiert
+* [ERR](#v1/api/err): Die Nachricht konnte nicht vom Client verarbeitet werden
+    * *ILLEGAL_STATE*: Der interne Gewinner stimmt nicht mit dem Argument <WINNER>
+    
 ----
-### 10. FIRE
+### [END_ACK](#v1/api/end_ack)<a id="v1/api/end_ack"></a>
 **Synopsis:**
 ```
-FIRE;<ROW>;<COLUMN>
+END_ACK
 ```
-**Description:**
-
-**Options:**
-* *ROW*: Das Feld im Spielfeld welches beschossen wird
-    * int im Intervall [0, Spielfeldgröße-1]
-* *COLUMN*: Das Feld im Spielfeld welches beschossen wird
-    * int im Intervall [0, Spielfeldgröße-1]
+**Beschreibung:**
+Bestätigt dem Host das Empfangen und die Akzeptanz des Spielergebnisses.
+    
+*Diese Nachricht wird als Antwort auf eine [END](#v1/api/end)-Nachricht gesendet.*
 
 ----
-### 11. FIRE_ACK
+### [BYE](#v1/api/bye)<a id="v1/api/bye"></a>
 **Synopsis:**
 ```
-FIRE_ACK;<ROW>;<COLUMN;<STATUS>
+BYE;[<CODE>;<REASON>]
 ```
-**Description:**
+**Beschreibung:**
+Informiert den Gegenspieler von einer gewollten (graceful) Beendigung der Verbindung.
 
-**Options:**
-* *ROW*: Das Feld im Spielfeld welches beschossen wird
-    * int im Intervall [0, Spielfeldgröße-1]
-* *COLUMN*: Das Feld im Spielfeld welches beschossen wird
-    * int im Intervall [0, Spielfeldgröße-1]
-* *STATUS*:
-    * String ∈ {"HIT", "MISS", "SUNK"}
+**Argumente:**
+* <span class="opt">CODE (optional):</span> Eine Zahl die ein konkretes Ergebnis (keinen Fehler) repräsentiert
+    * **int**: Eine positive Ganzzahl 
+* <span class="opt">REASON (optional):</span> Eine Beschreibung warum die Verbindung beendet wurde
+    * **String**: 
+        * Encoding Format: UTF-8
+        * Maximale Länge 255 Zeichen
 
 ----
-### 12. ERROR
+### [ERR](#v1/api/err)<a id="v1/api/err"></a>
 **Synopsis:**
 ```
-ERROR;<MSG>
+ERR;<CODE>;<REASON>
 ```
-**Description:**
-Falls ein Fehler auftritt, diesen dem Mitspieler mitteilen um Debugging auf beiden Seiten ermöglichen
-**Options:**
-* *MSG*: Fehler-Nachricht
-    * String
+**Beschreibung:**
+Informiert den Gegenspieler von einer unerwarteten Beendigung der Verbindung.
+
+**Argumente:**
+* <span class="opt">CODE:</span> Eine Zahl die ein konkretes Ergebnis (keinen Fehler) repräsentiert
+    * **int**: Eine negative Ganzzahl (siehe *Error Codes*)
+* <span class="opt">REASON:</span> Eine Beschreibung warum die Verbindung beendet wurde
+    * **String**: 
+        * Encoding Format: UTF-8
+        * Maximale Länge 255 Zeichen
+    
+**Error Codes**
+1. *UNEXPECTED_MESSAGE*: Die empfangene Nachricht wurde nicht erwartet
+2. *ILLEGAL_STATE*: Die empfangene Nachricht wurde erwartet, der Nachrichteninhalt entspricht jedoch nicht den Erwartungen 
+3. *ILLEGAL_ARGUMENT*: Ein oder mehrere Argumente der empfangenen Nachricht sind nicht korrekt