@the-inclusionist/engine 7.0.1 → 8.0.0-rc.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (136) hide show
  1. package/README.md +5 -3
  2. package/app/css/style.css +22 -5
  3. package/app/public/vendor/fonts/fondamento-400-ext.woff2 +0 -0
  4. package/app/public/vendor/fonts/fondamento-400.woff2 +0 -0
  5. package/app/public/vendor/fonts/opendyslexic-400.woff2 +0 -0
  6. package/app/public/vendor/fonts/playwrite-ar.woff2 +0 -0
  7. package/app/public/vendor/fonts/playwrite-br.woff2 +0 -0
  8. package/app/public/vendor/fonts/playwrite-ca.woff2 +0 -0
  9. package/app/public/vendor/fonts/playwrite-cl.woff2 +0 -0
  10. package/app/public/vendor/fonts/playwrite-co.woff2 +0 -0
  11. package/app/public/vendor/fonts/playwrite-mx.woff2 +0 -0
  12. package/app/public/vendor/fonts/playwrite-us-modern.woff2 +0 -0
  13. package/app/public/vendor/fonts/playwrite-us-trad.woff2 +0 -0
  14. package/app/public/vendor/fonts/pressstart-400.woff2 +0 -0
  15. package/app/public/vendor/fonts.css +64 -2
  16. package/dist-pkg/boot/create-game.d.ts +107 -4
  17. package/dist-pkg/boot/create-game.js +337 -18
  18. package/dist-pkg/core/constants.d.ts +0 -28
  19. package/dist-pkg/core/constants.js +34 -17
  20. package/dist-pkg/core/contract.d.ts +99 -0
  21. package/dist-pkg/core/contract.js +78 -0
  22. package/dist-pkg/core/entity.d.ts +47 -4
  23. package/dist-pkg/core/layers.d.ts +18 -0
  24. package/dist-pkg/core/layers.js +18 -0
  25. package/dist-pkg/core/rng.js +14 -4
  26. package/dist-pkg/core/route.d.ts +42 -0
  27. package/dist-pkg/core/route.js +158 -0
  28. package/dist-pkg/core/state.d.ts +10 -1
  29. package/dist-pkg/core/state.js +13 -0
  30. package/dist-pkg/educational/adaptive-engine.d.ts +65 -0
  31. package/dist-pkg/educational/adaptive-engine.js +117 -0
  32. package/dist-pkg/educational/segment-bar.d.ts +96 -0
  33. package/dist-pkg/educational/segment-bar.js +89 -0
  34. package/dist-pkg/i18n/en.js +44 -0
  35. package/dist-pkg/i18n/es.js +44 -0
  36. package/dist-pkg/i18n/pt.js +60 -0
  37. package/dist-pkg/input/default-bindings.d.ts +40 -0
  38. package/dist-pkg/input/default-bindings.js +151 -9
  39. package/dist-pkg/input/gamepad.d.ts +33 -12
  40. package/dist-pkg/input/gamepad.js +103 -16
  41. package/dist-pkg/input/keyboard-runtime.d.ts +6 -8
  42. package/dist-pkg/input/keyboard-runtime.js +24 -5
  43. package/dist-pkg/input/keyboard.d.ts +42 -0
  44. package/dist-pkg/input/keyboard.js +87 -17
  45. package/dist-pkg/input/keydown.d.ts +40 -2
  46. package/dist-pkg/input/keydown.js +29 -6
  47. package/dist-pkg/input/latch-edge.d.ts +28 -0
  48. package/dist-pkg/input/latch-edge.js +45 -0
  49. package/dist-pkg/input/latch-scope.d.ts +70 -0
  50. package/dist-pkg/input/latch-scope.js +110 -0
  51. package/dist-pkg/input/latch-store.d.ts +45 -0
  52. package/dist-pkg/input/latch-store.js +74 -0
  53. package/dist-pkg/input/latch-sync.d.ts +47 -0
  54. package/dist-pkg/input/latch-sync.js +43 -0
  55. package/dist-pkg/input/origem-sintetica.d.ts +44 -0
  56. package/dist-pkg/input/origem-sintetica.js +60 -0
  57. package/dist-pkg/input/pad-defaults.d.ts +22 -0
  58. package/dist-pkg/input/pad-defaults.js +34 -0
  59. package/dist-pkg/input/pointer.d.ts +61 -0
  60. package/dist-pkg/input/pointer.js +71 -0
  61. package/dist-pkg/input/state.d.ts +86 -1
  62. package/dist-pkg/input/state.js +128 -1
  63. package/dist-pkg/input/touch-bindings.d.ts +21 -2
  64. package/dist-pkg/input/touch-bindings.js +15 -3
  65. package/dist-pkg/input/touch.js +9 -1
  66. package/dist-pkg/input/transporte-em-uso.d.ts +101 -0
  67. package/dist-pkg/input/transporte-em-uso.js +130 -0
  68. package/dist-pkg/input/transports.d.ts +88 -2
  69. package/dist-pkg/input/transports.js +60 -5
  70. package/dist-pkg/input/vocabulary-migration.d.ts +18 -7
  71. package/dist-pkg/platform/audio-earcons.d.ts +29 -2
  72. package/dist-pkg/platform/audio-earcons.js +10 -0
  73. package/dist-pkg/platform/audio-nav.d.ts +1 -1
  74. package/dist-pkg/platform/audio-sonar.d.ts +149 -9
  75. package/dist-pkg/platform/audio-sonar.js +232 -21
  76. package/dist-pkg/platform/guide-intensity.d.ts +40 -0
  77. package/dist-pkg/platform/guide-intensity.js +73 -0
  78. package/dist-pkg/platform/pesados-catalogo.d.ts +14 -0
  79. package/dist-pkg/platform/pesados-catalogo.js +177 -0
  80. package/dist-pkg/platform/pesados.d.ts +31 -0
  81. package/dist-pkg/platform/pesados.js +75 -0
  82. package/dist-pkg/platform/storage.d.ts +30 -0
  83. package/dist-pkg/platform/storage.js +35 -0
  84. package/dist-pkg/platform/tts.js +16 -1
  85. package/dist-pkg/platform/voice-plan.d.ts +109 -0
  86. package/dist-pkg/platform/voice-plan.js +156 -0
  87. package/dist-pkg/platform/vozes-prontas.d.ts +28 -0
  88. package/dist-pkg/platform/vozes-prontas.js +61 -0
  89. package/dist-pkg/render/draw.d.ts +1 -1
  90. package/dist-pkg/render/draw.js +15 -5
  91. package/dist-pkg/render/viz-axes.d.ts +17 -0
  92. package/dist-pkg/render/viz-axes.js +19 -0
  93. package/dist-pkg/render/viz-setters.d.ts +34 -2
  94. package/dist-pkg/render/viz-setters.js +189 -33
  95. package/dist-pkg/render/wheelchair-sprites.d.ts +11 -3
  96. package/dist-pkg/render/wheelchair-sprites.js +10 -4
  97. package/dist-pkg/ui/dom.js +20 -2
  98. package/dist-pkg/ui/fonts.d.ts +71 -1
  99. package/dist-pkg/ui/fonts.js +111 -8
  100. package/dist-pkg/ui/latch-refusal.d.ts +32 -0
  101. package/dist-pkg/ui/latch-refusal.js +60 -0
  102. package/dist-pkg/ui/layout.d.ts +32 -0
  103. package/dist-pkg/ui/layout.js +64 -1
  104. package/dist-pkg/ui/motion-scene.d.ts +41 -0
  105. package/dist-pkg/ui/motion-scene.js +76 -0
  106. package/dist-pkg/ui/panel-shell.d.ts +53 -0
  107. package/dist-pkg/ui/panel-shell.js +103 -0
  108. package/dist-pkg/ui/pause-icons.d.ts +168 -20
  109. package/dist-pkg/ui/pause-icons.js +315 -45
  110. package/dist-pkg/ui/reach-notice.js +8 -0
  111. package/dist-pkg/ui/settings-audio.d.ts +14 -1
  112. package/dist-pkg/ui/settings-audio.js +43 -3
  113. package/dist-pkg/ui/settings-controls.d.ts +66 -6
  114. package/dist-pkg/ui/settings-controls.js +179 -17
  115. package/dist-pkg/ui/settings-empathy.d.ts +15 -0
  116. package/dist-pkg/ui/settings-empathy.js +2 -0
  117. package/dist-pkg/ui/settings-motion.d.ts +25 -19
  118. package/dist-pkg/ui/settings-motion.js +32 -19
  119. package/dist-pkg/ui/settings-motor.d.ts +101 -3
  120. package/dist-pkg/ui/settings-motor.js +136 -9
  121. package/dist-pkg/ui/settings-typo.d.ts +49 -5
  122. package/dist-pkg/ui/settings-typo.js +74 -23
  123. package/dist-pkg/ui/settings-visual.d.ts +21 -1
  124. package/dist-pkg/ui/settings-visual.js +48 -4
  125. package/dist-pkg/ui/shell.d.ts +13 -3
  126. package/dist-pkg/ui/shell.js +3 -4
  127. package/dist-pkg/ui/simulation-refusal.d.ts +32 -0
  128. package/dist-pkg/ui/simulation-refusal.js +57 -0
  129. package/dist-pkg/ui/visual-axes-panel.d.ts +48 -0
  130. package/dist-pkg/ui/visual-axes-panel.js +95 -0
  131. package/dist-pkg/ui/webcam.js +6 -1
  132. package/docs/CREDITS.md +22 -1
  133. package/docs/LICENSES.md +170 -132
  134. package/package.json +25 -4
  135. package/app/public/vendor/fonts/greatvibes-400.woff2 +0 -0
  136. package/app/public/vendor/fonts/ufcook-700.woff2 +0 -0
package/docs/LICENSES.md CHANGED
@@ -1,132 +1,170 @@
1
- # O que governa o quê
2
-
3
- Este projeto tem **duas licenças e um terceiro regime**, e confundi-los seria afirmar direito que não se
4
- tem. Este ficheiro diz apenas **qual regra alcança qual coisa**. As atribuições estão em
5
- [`CREDITS.md`](CREDITS.md); as razões, nos registros citados em cada linha.
6
-
7
- | o quê | regime | onde se decide |
8
- |---|---|---|
9
- | **Código** | **AGPL-3.0-or-later** | ADR-0064 · texto integral em [`../LICENSE`](../LICENSE) |
10
- | **Arte própria** | **NÃO é FOSS** — direito autoral do autor, uso restrito | ADR-0010 pilar 10 · `research/LICENCAS-GERACAO-IMAGEM.md` |
11
- | **Conteúdo de terceiros** | a licença que o autor escolheu, preservada | requerimento, pedido `g` |
12
-
13
- ---
14
-
15
- ## 1 · O código é AGPL-3.0-or-later
16
-
17
- Todo programa deste repositório. O `-or-later` é deliberado.
18
-
19
- **Por que AGPL e não GPL:** a GPL obriga quem **conveia**, e rodar serviço não é conveiar — a seção 0 da
20
- própria GPL separa `propagate` de `convey`. Um fornecedor que pegasse este código, melhorasse e hospedasse
21
- a sala de aula como serviço **não deveria a fonte a ninguém**. A seção 13 da AGPL fecha exatamente isso, e é
22
- o argumento que o requerimento faz ao Município na alínea `e`. Ver **ADR-0064**.
23
-
24
- ⚠️ **Titularidade patrimonial: o MUNICÍPIO, não o desenvolvedor.** Software produzido no exercício das
25
- funções pertence ao empregador (Lei nº 9.609/1998, art. 4º), e é por isso que a publicação sob AGPL é
26
- objeto de **pedido** no requerimento — ato do Poder Executivo — e não decisão de quem escreveu o código.
27
-
28
- ⚠️ **E é AQUI que essa titularidade fica dita, não no nome do pacote.** O escopo era `@pm-monte` para
29
- carregar esse fato (ADR-0036); passou a ser **`@the-inclusionist`** (**ADR-0071**), porque nome é lido por
30
- quem não vai abrir o repositório, e um escopo com o nome da Prefeitura publicado por servidor **antes do
31
- ato** é reivindicação pública de nome alheio. A regra é a mesma do **ADR-0066 §2**: a posse se declara
32
- DENTRO — neste ficheiro, na `LICENSE` e nos registros —, onde lê quem pretende usar.
33
-
34
- ## 2 · A arte NÃO é AGPL, e isso é decisão, não omissão
35
-
36
- Programa é o que a **Lei nº 9.609/1998** define. **Arte segue a Lei nº 9.610/1998** e pertence a quem a fez.
37
- Estender a AGPL à arte daria mais do que a lei pede **e** disporia de direito alheio.
38
-
39
- ⚠️ **E há uma razão de produto, não só jurídica:** o requisito é que os personagens **não** sejam de uso
40
- livre — não aparecerem em produto adulto, por exemplo. Isso é **incompatível com FOSS por construção**:
41
- licença livre não pode restringir campo de uso (liberdade 0; critério 6 da OSI, "sem discriminação de área
42
- de atuação"). Não existe arte simultaneamente livre e de uso restrito. A escolha foi feita com o
43
- trade-off escrito: **código FOSS + arte não-FOSS**.
44
-
45
- **A proteção é uma pilha de três, do mais forte ao mais fraco** (`research/LICENCAS-GERACAO-IMAGEM.md`):
46
-
47
- 1. **Marca registrada** dos personagens — nome e design-assinatura. É o esteio, porque barra uso que cause
48
- confusão ou diluição **independentemente de copyright**. Seletiva: nem todo personagem é registrado.
49
- 2. **Licença de arte própria**, não-FOSS, sobre os dados de arte e os algoritmos de composição.
50
- 3. **Autoria humana no algoritmo procedural** — quanto mais o humano cria, seleciona e modifica (em vez de
51
- apenas pedir a um gerador), mais forte o copyright, e mais exequível a licença (2).
52
-
53
- ⚠️ **E a ressalva que ordena a pilha:** arte derivada de IA **pode ser incopyrightável** — o US Copyright
54
- Office já o disse —, o que pode tornar a licença (2) **inexequível sozinha**. Por isso a marca é
55
- indispensável, e não um reforço opcional. Escrito aqui porque é o ponto em que a proteção falha em
56
- silêncio se ninguém souber.
57
-
58
- ## 3 · Conteúdo de terceiros mantém a licença de quem o fez
59
-
60
- Nem tudo aqui é nosso, e o que não é **não muda de licença por estar neste repositório**. É o que o pedido
61
- `g` do requerimento pede que conste dos autos: a relação nominal desses elementos e de suas licenças.
62
-
63
- - **Código de terceiros** — Clarity (MIT), sherpa-onnx (Apache-2.0), Piper (MIT), eSpeak NG (GPL-3.0).
64
- Detalhe e atribuição em [`CREDITS.md`](CREDITS.md).
65
- - **Vozes** — licença por voz, no `MODEL_CARD` de cada pacote. **A confirmar por voz antes de distribuição
66
- formal** — está assim no `CREDITS.md` e continua verdade.
67
- - **Pictogramas** — a camada é decidida pela **LICENÇA e por mais nada** (**ADR-0028**): Mulberry,
68
- Blissymbolics e Tawasol sob CC BY-SA são embutíveis; ARASAAC é **baixado, nunca redistribuído**; Sclera,
69
- PCS, SymbolStix e Widgit aparecem no menu como **indisponíveis, aguardando negociação**.
70
- ⚠️ E o **SA** alcança o que nós alterarmos: um pictograma reajustado à paleta de alto contraste
71
- (ADR-0011) ou à grade de pixels continua CC BY-SA.
72
- - **Tipografias** — roster e restrições no **ADR-0012**. ⚠️ Ronde e as alternativas OPTIFrench-Script e
73
- Merveille são **gratuitas só para uso pessoal e NÃO podem ser empacotadas**: oferece-se download, e a
74
- opção fica desabilitada quando nenhuma está presente.
75
-
76
- ---
77
-
78
- ## 4 · Inventário da arte — por enquanto, só a do PixelLab
79
-
80
- O ADR-0066 §3 põe este inventário entre as condições para qualquer repositório virar público, e o §2 desta
81
- página dizia que ele ainda não existia. Existe agora, **com o alcance que o Dev deu: apenas a arte gerada
82
- no PixelLab.**
83
-
84
- ### O que foi gerado, e onde está registrado
85
-
86
- **100 gerações**, de 2026-06-01 em diante, com data, ferramenta, custo estimado e **o prompt de cada uma**:
87
- [`research/auditoria-creditos-pixellab.csv`](research/auditoria-creditos-pixellab.csv). O prompt está lá de
88
- propósito — é o que permite a alguém de fora refazer a pergunta *"de onde veio esta imagem?"* sem depender da
89
- memória de ninguém.
90
-
91
- ### O regime, e a restrição que viaja junto
92
-
93
- Conforme a pesquisa de licenças (`research/LICENCAS-GERACAO-IMAGEM.md`), o PixelLab.ai é o gerador com os
94
- termos mais limpos do levantamento: **a titularidade da imagem é de quem gerou**, o uso comercial é
95
- permitido — *"usar, modificar e distribuir … para qualquer fim"* —, e **não há exigência de atribuição**.
96
-
97
- ⚠️ **E há UMA restrição, que não é nossa e por isso não podemos dispensá-la: as imagens não podem ser usadas
98
- para TREINAR MODELO.** Isso importa aqui por dois motivos concretos:
99
-
100
- 1. A arte deste projeto **não é FOSS** (§2), então a licença de arte própria é nossa para escrever — e ela
101
- tem de **carregar esta restrição adiante**, ou concederíamos a terceiros mais do que recebemos.
102
- 2. O alvo declarado é **arte procedural semântica** (`plano-arte-procedural.md`): imagem semântica + paletas.
103
- Se algum dia essa geração passar por um modelo treinado nos próprios assets, esta linha é a que diz que
104
- não pode.
105
-
106
- ### O que este inventário NÃO cobre, e por quê
107
-
108
- **ARTE PRÓPRIA NÃO EXISTE.** Não é que esteja fora do inventário — não há nenhuma para inventariar, e é por
109
- isso que esta seção cobre só o PixelLab.
110
-
111
- O Dev passa a produzi-la **depois de o Município aceitar o arranjo inteiro**: o código sob **AGPL-3.0** e a
112
- arte sob **licença CC adequada**. Enquanto essa aceitação não estiver documentada, não há arte própria e
113
- não há o que licenciar.
114
-
115
- ⚠️ **E arte não vai para AGPL — vai para CC.** A AGPL é licença de PROGRAMA (Lei 9.609); arte é obra da Lei
116
- 9.610 e o instrumento usual dela é o Creative Commons. Está escrito aqui porque a versão anterior deste
117
- parágrafo levantava, como se fosse dúvida em aberto, a hipótese de a arte própria virar AGPL. Não era
118
- dúvida: era erro, sobre uma coisa que ainda não existe.
119
-
120
- **Qual CC** é escolha para quando houver arte a licenciar, e não antes. O §2 desta página fica de pé como
121
- está: ele descreve o regime da arte que EXISTE hoje.
122
-
123
- ---
124
-
125
- ## O que este ficheiro NÃO faz
126
-
127
- - **Não é parecer jurídico.** É a declaração de escopo que um leitor precisa para não assumir que a AGPL da
128
- raiz alcança tudo. Onde há dúvida de propriedade intelectual, a fonte é a Procuradoria — que o requerimento
129
- aciona no pedido `c`.
130
- - **Não substitui o `CREDITS.md`**, que é onde mora a atribuição. Fato duplicado apodrece.
131
- - **Não lista a arte própria peça a peça** — e agora isso é ALCANCE e não omissão: o §4 inventaria a
132
- arte do PixelLab e diz, na mesma seção, por que a arte própria ainda não entrou.
1
+ # O que governa o quê
2
+
3
+ Este projeto tem **duas licenças e um terceiro regime**, e confundi-los seria afirmar direito que não se
4
+ tem. Este ficheiro diz apenas **qual regra alcança qual coisa**. As atribuições estão em
5
+ [`CREDITS.md`](CREDITS.md); as razões, nos registros citados em cada linha.
6
+
7
+ | o quê | regime | onde se decide |
8
+ |---|---|---|
9
+ | **Código** | **AGPL-3.0-or-later** | ADR-0064 · texto integral em [`../LICENSE`](../LICENSE) |
10
+ | **Arte própria** | **NÃO é FOSS** — direito autoral do autor, uso restrito | ADR-0010 pilar 10 · `research/LICENCAS-GERACAO-IMAGEM.md` |
11
+ | **Conteúdo de terceiros** | a licença que o autor escolheu, preservada | requerimento, pedido `g` |
12
+
13
+ ---
14
+
15
+ ## 1 · O código é AGPL-3.0-or-later
16
+
17
+ Todo programa deste repositório. O `-or-later` é deliberado.
18
+
19
+ **Por que AGPL e não GPL:** a GPL obriga quem **conveia**, e rodar serviço não é conveiar — a seção 0 da
20
+ própria GPL separa `propagate` de `convey`. Um fornecedor que pegasse este código, melhorasse e hospedasse
21
+ a sala de aula como serviço **não deveria a fonte a ninguém**. A seção 13 da AGPL fecha exatamente isso, e é
22
+ o argumento que o requerimento faz ao Município na alínea `e`. Ver **ADR-0064**.
23
+
24
+ ⚠️ **Titularidade patrimonial: o MUNICÍPIO, não o desenvolvedor.** Software produzido no exercício das
25
+ funções pertence ao empregador (Lei nº 9.609/1998, art. 4º), e é por isso que a publicação sob AGPL é
26
+ objeto de **pedido** no requerimento — ato do Poder Executivo — e não decisão de quem escreveu o código.
27
+
28
+ ⚠️ **E é AQUI que essa titularidade fica dita, não no nome do pacote.** O escopo era `@pm-monte` para
29
+ carregar esse fato (ADR-0036); passou a ser **`@the-inclusionist`** (**ADR-0071**), porque nome é lido por
30
+ quem não vai abrir o repositório, e um escopo com o nome da Prefeitura publicado por servidor **antes do
31
+ ato** é reivindicação pública de nome alheio. A regra é a mesma do **ADR-0066 §2**: a posse se declara
32
+ DENTRO — neste ficheiro, na `LICENSE` e nos registros —, onde lê quem pretende usar.
33
+
34
+ ## 2 · A arte NÃO é AGPL, e isso é decisão, não omissão
35
+
36
+ Programa é o que a **Lei nº 9.609/1998** define. **Arte segue a Lei nº 9.610/1998** e pertence a quem a fez.
37
+ Estender a AGPL à arte daria mais do que a lei pede **e** disporia de direito alheio.
38
+
39
+ ⚠️ **E há uma razão de produto, não só jurídica:** o requisito é que os personagens **não** sejam de uso
40
+ livre — não aparecerem em produto adulto, por exemplo. Isso é **incompatível com FOSS por construção**:
41
+ licença livre não pode restringir campo de uso (liberdade 0; critério 6 da OSI, "sem discriminação de área
42
+ de atuação"). Não existe arte simultaneamente livre e de uso restrito. A escolha foi feita com o
43
+ trade-off escrito: **código FOSS + arte não-FOSS**.
44
+
45
+ **A proteção é uma pilha de três, do mais forte ao mais fraco** (`research/LICENCAS-GERACAO-IMAGEM.md`):
46
+
47
+ 1. **Marca registrada** dos personagens — nome e design-assinatura. É o esteio, porque barra uso que cause
48
+ confusão ou diluição **independentemente de copyright**. Seletiva: nem todo personagem é registrado.
49
+ 2. **Licença de arte própria**, não-FOSS, sobre os dados de arte e os algoritmos de composição.
50
+ 3. **Autoria humana no algoritmo procedural** — quanto mais o humano cria, seleciona e modifica (em vez de
51
+ apenas pedir a um gerador), mais forte o copyright, e mais exequível a licença (2).
52
+
53
+ ⚠️ **E a ressalva que ordena a pilha:** arte derivada de IA **pode ser incopyrightável** — o US Copyright
54
+ Office já o disse —, o que pode tornar a licença (2) **inexequível sozinha**. Por isso a marca é
55
+ indispensável, e não um reforço opcional. Escrito aqui porque é o ponto em que a proteção falha em
56
+ silêncio se ninguém souber.
57
+
58
+ ## 3 · Conteúdo de terceiros mantém a licença de quem o fez
59
+
60
+ Nem tudo aqui é nosso, e o que não é **não muda de licença por estar neste repositório**. É o que o pedido
61
+ `g` do requerimento pede que conste dos autos: a relação nominal desses elementos e de suas licenças.
62
+
63
+ - **Código de terceiros** — Clarity (MIT), sherpa-onnx (Apache-2.0), Piper (MIT), eSpeak NG (GPL-3.0).
64
+ Detalhe e atribuição em [`CREDITS.md`](CREDITS.md).
65
+ - **Vozes** — licença por voz, no `MODEL_CARD` de cada pacote. **A confirmar por voz antes de distribuição
66
+ formal** — está assim no `CREDITS.md` e continua verdade.
67
+ - **Pictogramas** — a camada é decidida pela **LICENÇA e por mais nada** (**ADR-0028**): Mulberry,
68
+ Blissymbolics e Tawasol sob CC BY-SA são embutíveis; ARASAAC é **baixado, nunca redistribuído**; Sclera,
69
+ PCS, SymbolStix e Widgit aparecem no menu como **indisponíveis, aguardando negociação**.
70
+ ⚠️ E o **SA** alcança o que nós alterarmos: um pictograma reajustado à paleta de alto contraste
71
+ (ADR-0011) ou à grade de pixels continua CC BY-SA.
72
+ - **Tipografias** — roster e restrições no **ADR-0012**. ⚠️ Ronde e as alternativas OPTIFrench-Script e
73
+ Merveille são **gratuitas só para uso pessoal e NÃO podem ser empacotadas**: oferece-se download, e a
74
+ opção fica desabilitada quando nenhuma está presente.
75
+ - **Arte de terceiros — TRÊS PORTAS, e o que decide é compatibilidade com o projeto** (**ADR-0133**), não a
76
+ família a que um nome pertence. Quatro perguntas: podemos **derivar**? pode ser usada **comercialmente**?
77
+ podemos **conveiar** o ficheiro no que publicamos? alguma coisa **viaja** da fonte para a nossa saída?
78
+ - **Porta `licenca`** — uma licença pública já medida: **CC0 1.0**, **CC BY 3.0/4.0**, **OGA-BY 3.0/4.0**,
79
+ e as permissivas de software (**MIT**, **Apache-2.0**) quando a arte carrega uma. ⚠️ A OGA-BY **não é
80
+ Creative Commons** — a própria CC declara que não a endossa — e é a CC BY *menos* a restrição sobre
81
+ medidas técnicas, logo estritamente mais permissiva. 📌 Um nome novo não é recusado: é **referido**, e
82
+ entra assim que um registo responder as quatro perguntas para ele.
83
+ - **Porta `concessao`** — o autor escreveu a permissão, sem nome de licença conhecido. A linha do livro
84
+ guarda a **URL onde a concessão está escrita**, porque uma permissão que ninguém consegue abrir é
85
+ memória e não permissão.
86
+ - **Porta `ponte`** — copyleft **CC BY-SA** entra convertido em **`GPL-3.0-only`** na nossa saída. O
87
+ mecanismo é público e tem três degraus: a CC BY-SA 3.0 §4(b)(ii) deixa uma **adaptação** sair como 4.0;
88
+ a Creative Commons declarou a GPLv3 compatível num sentido só em 08/10/2015; e o **§13 da GPLv3** permite
89
+ combinar obra GPLv3 com obra AGPLv3 num único trabalho. ⚠️ Exige **fonte modificável** — a imagem
90
+ semântica mais o dicionário de paletas —, é de **sentido único e permanente**, e só abre para
91
+ **adaptação**: nenhum ficheiro CC BY-SA entra tal e qual.
92
+ 🔴 **E essa fonte modificável AINDA NÃO EXISTE.** A versão anterior desta linha dizia «o que este projeto
93
+ já mantém», e era falsa: não há `app/js/art/`, não há formato semântico e não há editor. **Enquanto não
94
+ houver, esta porta está descrita e não está aberta** — o LPC não entra. Ver `game-design/plano-arte-procedural.md`.
95
+ 🔴 **E o que não tem porta nenhuma: ND** (proíbe derivar, e recolorir já é derivar) e **NC** (deixaria a
96
+ arte mais estreita que o CÓDIGO — a AGPL permite uso comercial, e quem ela convida seria travado por um
97
+ sprite; e a fronteira do NC é indefinida, com uma implantação municipal em cima dela).
98
+ 📌 **Não há quarentena, e já houve.** O ADR-0107 punha o Liberated Pixel Cup atrás de uma parede; a ponte
99
+ substitui-a, porque a arte que a atravessa **deixa de ser share-alike do nosso lado** em vez de ficar
100
+ murada do resto.
101
+ - **Arte de terceiros — as fontes admitidas** (decisão do Dev, 2026-09-09; detalhe em
102
+ [`../art/README.md`](../art/README.md)). Entram **antes de qualquer arte do próprio projeto**:
103
+ **Kenney** (`kenney.nl/assets`, CC0 1.0, confirmado em três lugares) · **ansimuz** (`ansimuz.itch.io`,
104
+ CC0 1.0 **por pacote** — o perfil não concede nada) · **Tiny Swords** (`pixelfrog-assets.itch.io`), que
105
+ entra **pelas duas portas**: o ficheiro `TS_old version_CC0 Licensed` é CC0, e o **pacote atual** entra
106
+ pela **concessão** do autor, cujos termos permitem uso pessoal e comercial e modificação à vontade sem
107
+ exigir crédito · e o **Liberated Pixel Cup** (`OpenGameArt/LiberatedPixelCup`), pela **ponte**, como
108
+ adaptação sob `GPL-3.0-only`.
109
+ **Quais recursos entram, e para que jogos, é direção de arte** e não se decide aqui.
110
+ ⚠️ **Atribuição é condição de uso, por recurso**, e a **fonte guarda-se como URL**: uma licença declarada
111
+ por quem nos entrega o ficheiro é indício, não autoridade, e sem a origem registada não há contra o que a
112
+ conferir. Recurso sem autor conhecido **não entra** — «não consegui descobrir» não é licença.
113
+
114
+ ---
115
+
116
+ ## 4 · Inventário da arte — por enquanto, só a do PixelLab
117
+
118
+ O ADR-0066 §3 põe este inventário entre as condições para qualquer repositório virar público, e o §2 desta
119
+ página dizia que ele ainda não existia. Existe agora, **com o alcance que o Dev deu: apenas a arte gerada
120
+ no PixelLab.**
121
+
122
+ ### O que foi gerado, e onde está registrado
123
+
124
+ **100 gerações**, de 2026-06-01 em diante, com data, ferramenta, custo estimado e **o prompt de cada uma**:
125
+ [`research/auditoria-creditos-pixellab.csv`](research/auditoria-creditos-pixellab.csv). O prompt está lá de
126
+ propósito — é o que permite a alguém de fora refazer a pergunta *"de onde veio esta imagem?"* sem depender da
127
+ memória de ninguém.
128
+
129
+ ### O regime, e a restrição que viaja junto
130
+
131
+ Conforme a pesquisa de licenças (`research/LICENCAS-GERACAO-IMAGEM.md`), o PixelLab.ai é o gerador com os
132
+ termos mais limpos do levantamento: **a titularidade da imagem é de quem gerou**, o uso comercial é
133
+ permitido — *"usar, modificar e distribuir … para qualquer fim"* —, e **não há exigência de atribuição**.
134
+
135
+ ⚠️ **E há UMA restrição, que não é nossa e por isso não podemos dispensá-la: as imagens não podem ser usadas
136
+ para TREINAR MODELO.** Isso importa aqui por dois motivos concretos:
137
+
138
+ 1. A arte deste projeto **não é FOSS** (§2), então a licença de arte própria é nossa para escrever — e ela
139
+ tem de **carregar esta restrição adiante**, ou concederíamos a terceiros mais do que recebemos.
140
+ 2. O alvo declarado é **arte procedural semântica** (`plano-arte-procedural.md`): imagem semântica + paletas.
141
+ Se algum dia essa geração passar por um modelo treinado nos próprios assets, esta linha é a que diz que
142
+ não pode.
143
+
144
+ ### O que este inventário NÃO cobre, e por quê
145
+
146
+ **ARTE PRÓPRIA NÃO EXISTE.** Não é que esteja fora do inventário — não há nenhuma para inventariar, e é por
147
+ isso que esta seção cobre só o PixelLab.
148
+
149
+ O Dev passa a produzi-la **depois de o Município aceitar o arranjo inteiro**: o código sob **AGPL-3.0** e a
150
+ arte sob **licença CC adequada**. Enquanto essa aceitação não estiver documentada, não há arte própria e
151
+ não há o que licenciar.
152
+
153
+ ⚠️ **E arte não vai para AGPL — vai para CC.** A AGPL é licença de PROGRAMA (Lei 9.609); arte é obra da Lei
154
+ 9.610 e o instrumento usual dela é o Creative Commons. Está escrito aqui porque a versão anterior deste
155
+ parágrafo levantava, como se fosse dúvida em aberto, a hipótese de a arte própria virar AGPL. Não era
156
+ dúvida: era erro, sobre uma coisa que ainda não existe.
157
+
158
+ **Qual CC** é escolha para quando houver arte a licenciar, e não antes. O §2 desta página fica de pé como
159
+ está: ele descreve o regime da arte que EXISTE hoje.
160
+
161
+ ---
162
+
163
+ ## O que este ficheiro NÃO faz
164
+
165
+ - **Não é parecer jurídico.** É a declaração de escopo que um leitor precisa para não assumir que a AGPL da
166
+ raiz alcança tudo. Onde há dúvida de propriedade intelectual, a fonte é a Procuradoria — que o requerimento
167
+ aciona no pedido `c`.
168
+ - **Não substitui o `CREDITS.md`**, que é onde mora a atribuição. Fato duplicado apodrece.
169
+ - **Não lista a arte própria peça a peça** — e agora isso é ALCANCE e não omissão: o §4 inventaria a
170
+ arte do PixelLab e diz, na mesma seção, por que a arte própria ainda não entrou.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@the-inclusionist/engine",
3
- "version": "7.0.1",
3
+ "version": "8.0.0-rc.2",
4
4
  "type": "module",
5
5
  "description": "Accessibility-first (WCAG 2.2 + GAG) engine for educational 2D pixel-art games, built with PixiJS. Screen reader, sonar, high contrast by role, colour-vision filters, remappable input as intent, i18n and offline PWA — the parts every game inherits (ADR-0035, ADR-0036).",
6
6
  "comment:exports": [
@@ -17,10 +17,25 @@
17
17
  "form and it is the one every module in this repository already writes internally, so a consumer's",
18
18
  "import line looks exactly like ours. Extensionless is NOT offered: supporting both needs two patterns",
19
19
  "per layer, and two spellings of one import is how two halves of a codebase drift.",
20
- "`./style.css` and `./assets/*` exist because the borrowed panels REQUIRE them and nothing said so — a",
20
+ "⚠️ `./assets/*` IS GONE (2026-09-07, issue #119). It matched the whole of `app/public/` while `files`",
21
+ "ships only `app/public/vendor`, so the pattern promised what it did not deliver and a consumer found",
22
+ "out through a 404 at runtime. Measured before removing: `app/public/` holds three entries — `vendor/`,",
23
+ "`_headers`, `icon.svg` — and only `vendor` ships, so everything the wide door could resolve in a",
24
+ "published tarball is already covered by `./assets/vendor/*`, and the rest already 404'd. Nobody's import",
25
+ "line changes: `engine/assets/vendor/fonts.css` still matches.",
26
+ "`./style.css` and `./assets/vendor/*` exist because the borrowed panels REQUIRE them and nothing said so — a",
21
27
  "consumer that installed this package got dialogs with no styling and a typography menu offering 18",
22
28
  "fonts that 404. Copy `assets/vendor/` into your own `public/` at build time: `fonts.css` addresses the",
23
- "faces by RELATIVE url, so the folder travels whole or not at all."
29
+ "faces by RELATIVE url, so the folder travels whole or not at all.",
30
+ "⚠️ AND COPYING IS NOT ENOUGH — THE CONSUMER MUST ALSO *LINK* THE SHEET, which nothing said either:",
31
+ " <link rel=\"stylesheet\" href=\"/vendor/fonts.css\">",
32
+ " <link rel=\"preload\" href=\"/vendor/fonts/atkinson-400.woff2\" as=\"font\" type=\"font/woff2\" crossorigin>",
33
+ "Measured on 2026-09-07: NOBODY in this repository referenced `vendor/fonts.css`. The `app/index.html`",
34
+ "that used to link it left with the cartridge (issue #111), and the typography panel went on offering",
35
+ "seventeen families of which none loaded — the child picks one, the menu marks it active, and the browser",
36
+ "draws the system font. No error anywhere. `app/quiz.html` links it now, and",
37
+ "`tests/fontes-carregam.node.test.js` holds both halves: no offerable font without a `@font-face`, and",
38
+ "the host actually loading the sheet."
24
39
  ],
25
40
  "exports": {
26
41
  ".": {
@@ -51,8 +66,12 @@
51
66
  "types": "./dist-pkg/educational/*.d.ts",
52
67
  "default": "./dist-pkg/educational/*.js"
53
68
  },
69
+ "./i18n/*.js": {
70
+ "types": "./dist-pkg/i18n/*.d.ts",
71
+ "default": "./dist-pkg/i18n/*.js"
72
+ },
54
73
  "./style.css": "./app/css/style.css",
55
- "./assets/*": "./app/public/*",
74
+ "./assets/vendor/*": "./app/public/vendor/*",
56
75
  "./package.json": "./package.json"
57
76
  },
58
77
  "types": "./dist-pkg/boot/create-game.d.ts",
@@ -133,6 +152,8 @@
133
152
  "test:node": "vitest run --project node",
134
153
  "test:browser": "vitest run --project browser",
135
154
  "check:precache": "node scripts/check-precache.mjs",
155
+ "censo:issues": "node scripts/censo-de-issues.mjs",
156
+ "check:annual-report": "node scripts/check-annual-report.mjs",
136
157
  "test:a11y": "node scripts/axe-check.mjs",
137
158
  "release": "release-it"
138
159
  },