Documentazione

Panoramica

Architettura

Aggiornata 2026-11-03

Architettura

Il kit separa la logica pura di gioco da HTTP, persistenza, autenticazione e presentazione. Questo confine permette allo stesso motore di servire giochi molto diversi.

Livelli

Livello Posizione Responsabilità
Dominio app/Domain/Engine Calcoli puri e deterministici: gare, punteggio, fusione, allevamento, ciclo di vita, requisiti, simulatori
Persistenza app/Models, database/migrations Modelli Eloquent, migrazioni additive, seeder
Applicazione app/Services Orchestrazione, transazioni, operazioni consapevoli dell'autorizzazione
HTTP app/Http Controller, request, resource, policy, middleware
Admin app/Filament Control plane dell'operatore
Web resources/views, routes/web.php Pagine pubbliche, web di gioco, documentazione prodotto
Client flutter/ Client Android e web
API routes/api.php Contratto versionato /api/v1

Autorità del server

Il client non sceglie mai il seed autoritativo, l'esito della lineup o il risultato. Il server:

  1. valida proprietà, lineup e regole;
  2. seleziona o salva la combinazione dei task;
  3. calcola il risultato in modo deterministico;
  4. salva un replay con la traccia;
  5. concede ricompense in modo idempotente.

Contratto del tema

theme.yaml è l'unica fonte di vocabolario e forma del gioco. Un theme pack dichiara anche pack.yaml, i file di etichetta e i seeder di contenuto.

Versionamento

  • I profili meccaniche sono versionati e attivati atomicamente.
  • Collezionabili, tratti, prove, risultati e regole di contenuto hanno versioni.
  • Le definizioni e le attivazioni delle abilità sono versionate.
  • L'API è versionata sotto /api/v1 e verificata da un test di parità OpenAPI.

Modalità di deployment

  • Gioco (default): il web di gioco è alla radice.
  • Sito prodotto (PRODUCT_SITE_ENABLED=true): il sito marketing è alla radice e le pagine di gioco del giocatore vivono sotto /demo.