Ho implementato il sistema per cui le missioni vengono proposte in base al proprio punteggio accumulato e in base alla soglia minima necessaria per accedervi. In questo modo posso "nascondere" la missione nuova a chiunque non abbia completato la vecchia.
E' stata un'implementazione decisamente banale, ma se non altro mi ha permesso di rilasciare in produzione anche la nuova vicenda, che tanto rimane, con questo meccanismo, praticamente inaccessibile.
Ho scoperto a mie spese che il mio flusso di rilascio scriptato NON cancella i file perché, semplicemente, il comando git add non aggiunge le cancellazioni per i commit.
Per fare pulizia dovrò, periodicamente, aggiungere i file cancellati a commit ad hoc e mandarli online.
Pensierino di Natale: sarebbe un'idea intelligente fare refactoring di User e Game rendendole estensioni delle classi DBIX::Class che rappresentano il DB? Questo potrebbe essere il modo più pulito per accordare il codice, altrimenti devo continuare a creare funzioni proxy tra gli accessi al DB e gli accessi alla classe...