signal-fish-server 0.2.0

A lightweight, in-memory WebSocket signaling server for peer-to-peer game networking
Documentation
site_name: Signal Fish Server
site_url: https://ambiguous-interactive.github.io/signal-fish-server/
site_description: A lightweight, zero-dependency WebSocket signaling server for peer-to-peer game networking
repo_url: https://github.com/Ambiguous-Interactive/signal-fish-server
repo_name: signal-fish-server
edit_uri: edit/main/docs/

theme:
  name: material
  palette:
    - media: "(prefers-color-scheme: dark)"
      scheme: slate
      primary: custom
      accent: custom
      toggle:
        icon: material/brightness-4
        name: Switch to light mode
    - media: "(prefers-color-scheme: light)"
      scheme: default
      primary: custom
      accent: custom
      toggle:
        icon: material/brightness-7
        name: Switch to dark mode
  features:
    - navigation.instant
    - navigation.instant.prefetch
    - navigation.instant.progress
    - navigation.tracking
    - navigation.tabs
    - navigation.tabs.sticky
    - navigation.sections
    - navigation.expand
    - navigation.top
    - navigation.footer
    - search.suggest
    - search.highlight
    - search.share
    - content.code.copy
    - content.code.annotate
    - content.action.edit
    - content.action.view
    - content.tabs.link
    - toc.follow
    - header.autohide
  icon:
    repo: fontawesome/brands/github
  font:
    text: Roboto
    code: Roboto Mono

extra_css:
  - stylesheets/extra.css

markdown_extensions:
  - admonition
  - pymdownx.details
  - pymdownx.superfences:
      custom_fences:
        - name: mermaid
          class: mermaid
          format: !!python/name:pymdownx.superfences.fence_code_format
  - pymdownx.highlight:
      anchor_linenums: true
      auto_title: true
      line_spans: __span
      pygments_lang_class: true
  - pymdownx.inlinehilite
  - pymdownx.snippets
  - pymdownx.tabbed:
      alternate_style: true
  - pymdownx.emoji:
      emoji_index: !!python/name:material.extensions.emoji.twemoji
      emoji_generator: !!python/name:material.extensions.emoji.to_svg
  - attr_list
  - md_in_html
  - tables
  - toc:
      permalink: true
      permalink_title: Anchor link to this section
      toc_depth: 3
  - pymdownx.tasklist:
      custom_checkbox: true
  - abbr
  - def_list
  - footnotes
  - pymdownx.betterem:
      smart_enable: all
  - pymdownx.caret
  - pymdownx.mark
  - pymdownx.tilde
  - pymdownx.keys
  - pymdownx.smartsymbols
  - pymdownx.critic

plugins:
  - search:
      separator: '[\s\-,:!=\[\]()"/]+|(?!\b)(?=[A-Z][a-z])|\.(?!\d)|&[lg]t;'

extra:
  generator: false

# Validation settings for strict mode.
# Internal-only docs (CI guides, hook references, etc.) are intentionally excluded from nav
# but contain links to files outside docs/ (e.g., .llm/skills/, tests/). These links are
# valid in the repo context but unresolvable by MkDocs. Downgrade to info to avoid blocking
# the build while keeping strict mode for our public documentation pages.
validation:
  nav:
    omitted_files: info
  links:
    not_found: info
    unrecognized_links: info

nav:
  - Home: index.md
  - Getting Started:
      - Quick Start: quickstart.md
      - Installation & Running: getting-started.md
  - Concepts:
      - What is Signal Fish?: concepts/overview.md
      - Rooms & Lobbies: concepts/rooms-and-lobbies.md
      - Authority System: concepts/authority.md
      - Reconnection: concepts/reconnection.md
      - Spectator Mode: concepts/spectator-mode.md
  - Guides:
      - Rust Client: guides/rust-client.md
  - Configuration:
      - Server Config: configuration.md
      - Authentication: authentication.md
      - Deployment: deployment.md
  - Reference:
      - Protocol Messages: protocol.md
      - Error Codes: reference/error-codes.md
      - Features: features.md
      - Architecture: architecture.md