Fatti

La società [A.] (ricorrente), un poligono di tiro costituito in forma di associazione, è proprietaria della particella n. F2180 a San Gallo e vi gestisce dal 1904 il poligono Weiherweid. Nel febbraio 2017 l'ufficio cantonale per l'ambiente ha chiesto al Comune di San Gallo se gli impianti di tiro a 300 m nonché a 50 m rispettivamente 25 m sarebbero stati dotati di sistemi artificiali di parapalle entro fine 2020 oppure dismessi, richiamando le pretese di indennizzo in caso di risanamenti.

La ricorrente intendeva installare sistemi di parapalle e chiedeva al Comune una partecipazione alle spese: fr. 77'760.-- per i sistemi di parapalle e fr. 113'356.-- per la sostituzione dell'indicatore elettronico dei colpi G300m. Con decisione del 7 novembre 2017 il Consiglio comunale ha respinto entrambe le domande, con spese a carico della richiedente.

La Commissione di ricorso in materia amministrativa non è entrata nel ricorso e lo ha trasmesso al Governo. Il Dipartimento della sicurezza e della giustizia ha respinto il rimedio giuridico il 16 settembre 2019. Il Tribunale amministrativo del Cantone di San Gallo (Sezione I) ha respinto il ricorso il 15 aprile 2020, nella misura in cui vi era entrato nel merito.

Con ricorso in materia di diritto pubblico del 25 maggio 2020 la ricorrente ha chiesto l'annullamento della decisione e l'assegnazione dei contributi, in via eventuale il rinvio. Il Comune, il Dipartimento e il Tribunale amministrativo hanno chiesto la reiezione. Il DDPS si è espresso senza formulare conclusioni.

La ricorrente ha fondato le sue pretese sull'art. 133 cpv. 1 LM e sull'art. 8 OSC. L'autorità inferiore ha osservato che il Comune adempie ai suoi obblighighi sul proprio territorio tramite gli impianti Ochsenweid e Schaugenbad, che sono concessi gratuitamente a una società di tiro mediante servitù di diritto di superficie. L'impianto Weiherweid non è necessario per il tiro fuori servizio e confina con zone residenziali. Non è stato promesso alcun diritto a contributi di manutenzione o di rinnovo.

La questione principale era se sussista un diritto giuridico alla sovvenzione (art. 83 lett. k LTF), se il ricorso sussidiario in materia costituzionale sia ammissibile e se l'addebito delle spese secondo l'art. 94 LPAmm sia compatibile con l'OTir e con il primato del diritto federale (art. 49 Cost.).

Diritto

Il Tribunale federale qualifica i contributi controversi come sovvenzione ai sensi dell'art. 83 lett. k LTF, trattandosi di vantaggi pecuniari che un'associazione privata chiede a un Comune per l'adempimento di un compito pubblico. Sussiste un diritto giuridico solo se l'atto normativo descrive in modo sufficientemente concreto le condizioni del sostegno e non lascia alcun potere di apprezzamento all'autorità. L'art. 133 cpv. 1 LM lascia al Comune un potere di scelta, per cui da esso non deriva alcun diritto giuridico. L'art. 8 OSC è concepito per contributi a impianti situati fuori dal territorio comunale e non disciplina in modo sufficientemente concreto i contributi a un impianto ubicato sul territorio comunale. Il ricorso in materia di diritto pubblico è pertanto inammissibile.

Il ricorso è trattato come ricorso sussidiario in materia costituzionale (art. 113 segg. LTF). La libertà economica (art. 27 Cost.) garantisce la neutralità concorrenziale, che ammette differenziazioni per ragioni di protezione ambientale, purché siano proporzionate. Il Tribunale lascia aperta la questione se l'ambito di protezione sia toccato, poiché le censure sono comunque infondate. La ricorrente non ha dimostrato che la sua attività associativa sia svolta a titolo professionale e con scopo di lucro. Si deve concordare con l'autorità inferiore che i vantaggi in materia di rumore degli impianti Ochsenweid e Schaugenbad costituiscono una differenziazione ammissibile sotto il profilo costituzionale. La decisione in materia di rumore del 11 settembre 2020, prodotta nella procedura davanti al Tribunale federale, è un nuovo fatto vero e proprio inammissibile (art. 99 cpv. 1 LTF).

Le violazioni del diritto di essere sentiti censurate (accertamento incompleto dei fatti,…