{#if room}
{error}
{/if} {#if phrase}On the other device, open the hall and claim this phrase within ten minutes: {phrase.phrase}
{/if} {#if room?.remote?.started && room.state.over && !watching} {@const r = room.remote}{#if r.rematch} {room.speaker(r.rematch.by)} called for a rematch at table {r.rematch.to}. Take your seat {:else} the same company, at a new table; seats are held for everyone here. {/if}
{/if} {#if joining && seatFree}room {roomId}
A wizard has opened this table and is gathering opponents. Choose a name and sit; the duel begins when the host says.
Just watching? You are in the Peanut Gallery until you sit.
{hostName} is gathering wizards. Sit down above, or watch from the gallery until the duel begins.
{:else}The table is full. You watch from the Peanut Gallery; the duel begins when {hostName} says.
{/if} {:else}room {roomId}
Send this link, or the code. Whoever opens it takes a seat; the table holds a dozen, and the duel begins when you say. Anyone who arrives once it has begun watches from the Peanut Gallery.
{link}
A rematch of table {r.rematchOf}: the same company, seats held for those not yet back.
{/if} {#if !watching}{r.keeper} keeps this site and answers every call, sometimes within the minute, sometimes after a night's sleep.{#if keeperHour} It is {keeperHour} where {r.keeper} lives.{/if} The seat is held either way.
{r.keeper} has been called to the table by {room.speaker(r.challenge.by)}.{#if keeperHour} It is {keeperHour} there.{/if} A seat is held: if they can come now they will take it; if they are asleep or away they will leave a word below when they can. Meanwhile the table is yours: seat a bot, invite a friend, or open another duel in a new tab and play on. This table keeps its place in your hall until you come back.
{/if} {/if} {#if r.error}{r.error}
{/if}{joining ? 'Finding the table.' : 'Finding your seat.'}
{/if}