# Catálogo de módulos — dossiês V5/V6 + Sucesu → fases

> **O que é:** a lista canônica de **todos** os módulos dos corpora e a fase em que cada um entra
> (ou por que não entra), além do mapeamento nominal das unidades de serviço/arquitetura do
> `sucesu_analise` e dos dossiês `lotep-v2`. Complementa o [`INVENTARIO.md`](./INVENTARIO.md) (que
> julga o backlog) e os arquivos `P*.md` (que executam). **Não autoriza implementação:** `PODE`/
> `COND` só viram trabalho com contrato, decisão e `kd`.
>
> Legenda: **DEVE** (fila do programa) · **PODE** (demanda/contrato) · **COND** (condicionado a
> decisão/segundo consumidor/terceiro) · **NÃO** (rejeitado/não se aplica) · **FEITO** (já existe).
> Dados: **P** = público · **S** = sensível (LGPD, acesso restrito) · **R** = dado de referência.

## 0. Regra transversal — dados abertos (P5.5)

> **Todo módulo que publica dado público implementa `Core\Contracts\Ports\DatasetSource`,
> registra a classe no `ModuleProvider::register()` e é coberto pelo `DatasetIntegrationTest`.**
> O módulo **dono** da tabela é o dono da fonte; o módulo `Portal/DadosAbertos` é só catálogo/CMS
> e referencia a fonte (`source`), sem copiar linhas. Não existe `services/Export` separado: CSV,
> JSON e XML saem do `Services\OpenData` (P5.5). Evento, se existir, leva **apenas** o `sourceId`;
> nunca as linhas. Módulo sem dado público **não** cria fonte.

```php
// ModuleProvider::register() — exemplo
app(DatasetRegistry::class)->register(NoticiasDatasetSource::class);
```

A fonte vive no módulo (`Logic/Datasets/...`), importa só o contrato do Core e **não** importa
`Modules\Portal\DadosAbertos` nem outro módulo. O gate falha se a fonte existir e não estiver
registrada, se o `id` não for namespaced/único ou se declarar PII sem `publicationBasis` e
`personalDataFields` (allowlist). Dados sensíveis não são publicáveis.

## 1. Módulos por fase

### P0/P1 — plataforma (configuração e estrutura)

| Módulo (dossiê) | Fase | Veredito | Dados | Observação |
|---|---|---|---|---|
| `configuracoes-da-instituicao` | P0/P1 | **DEVE** | P | vira seção tipada `institution`; sem key/value livre |
| `outras-configuracoes` | P0/P1 | **DEVE** | P | fundido no mesmo módulo/schema (C13) |
| `temas-e-cores` | P1 | **DEVE** | P | editor de tokens; layout já resolve; sem service |
| `menus-do-site` | P1 | **DEVE** | P | módulo `Menus` + porta Core; árvore máx. 3 níveis |
| `acesso-rapido` | P1/P5 | **DEVE** | P | menu `acesso-rapido` + bloco de cards; sem módulo próprio |
| `fornecedores` | P3 | **PODE** | P | página de contato usa settings; CRUD só com múltiplos fornecedores |
| `logs-do-sistema` | P3 | **DEVE** | S | leitor da trilha de auditoria (ADR-035), não log técnico |
| `manual-do-sistema` | P3 | **PODE** | P | link/estado vazio; sem módulo de conteúdo sem demanda |
| `novidades` | P3 | **PODE** | P | versão + notas; sem CMS de changelog sem demanda |
| `suporte` | P3 | **DEVE** | S | painel restrito; sem sistema de tickets |
| `usuarios` | P2 | **DEVE** | S | UI sobre ADR-033; um perfil por usuário |
| `lgpd` | — | **FEITO** | S | `src/modules/Portal/Lgpd/**` |

### P5 — composição do site (estrutura de conteúdo)

| Módulo | Fase | Veredito | Dados | Observação |
|---|---|---|---|---|
| `paginas-estaticas` | P5 | **DEVE** | P | página como dado + AST; fallback, sem sombrear rota |
| `banners` | P5 | **DEVE** | P | tipo de destaque + slot; agendamento |
| `destaques` | P5 | **DEVE** | P | mesmo motor de banners; um dono por domínio |
| `avisos` | P5 | **DEVE** | P | bloco de aviso na home; sem modal obrigatório |
| `mais-conteudos` | P15 | **PODE** | P | coleções/categorias editoriais; não é motor genérico |
| `homepage` (Sucesu) | P5 | **DEVE** | P | home por seções; já coberto |
| `basic-page` (Sucesu) | P5 | **DEVE** | P | páginas como dado; já coberto |

### P6/P7/P8/P9/P10/P11/P12/P13 — núcleo já planejado

| Módulo | Fase | Veredito | Dados | Observação |
|---|---|---|---|---|
| `noticias` | P6 | **DEVE** | P | paridade editorial (categorias/tags/galeria/destaque/preview); piloto `noticias.publicadas` no motor P5.5 |
| `licitacoes` | P8 | **DEVE** | P | 5 tabelas, anexos, `show_value` |
| `legislacao` | P10 | **DEVE** | P | versionamento/consolidação/revogação (ADR-048) |
| `ouvidoria` | P11 | **DEVE** | S | protocolo, prazo, anonimato |
| `solicitacoes-lai` | P11 | **DEVE** | S | e-SIC, prazos LAI, recurso |
| `transparencia-fiscal` | P12 | **DEVE** | P | `DadosAbertos` é o owner único; módulo/página é view (D9) |
| `relatorio-estatistico-ouvidoria` | P12 | **PODE** | P | agregado público, sem PII |
| `dados-abertos` (já existe) | P5.5/P12 | **FEITO** | P | motor `OpenData` extraído em P5.5; catálogo/DCAT/export; P12 amplia fiscal |

### P14 — institucional e identidade local

| Módulo | Fase | Veredito | Dados | Observação |
|---|---|---|---|---|
| `a-instituicao` | P14 | **DEVE** | P | autoridades + seções institucionais; usa pages/blocks |
| `a-cidade` | P14 | **DEVE** | P | história, dados gerais, galeria; usa pages/blocks |
| `secretarias` | P14 | **DEVE** | P | secretarias + departamentos; contato/expediente |
| `orgaos` | P14 | **DEVE** | P | órgãos públicos; sigla/tipo/responsável |
| `unidades-de-atendimento` | P14 | **DEVE** | P | pontos de atendimento; endereço/telefone/acessibilidade |
| `telefones-uteis` | P14 | **DEVE** | P | lista ordenada; sem duplicar órgãos |
| `redes-sociais` | P14 | **DEVE** | P | links oficiais; sem ícone de terceiro |
| `glossario` | P14 | **DEVE** | P | termos A–Z; definição em AST |
| `perguntas-frequentes` | P14 | **DEVE** | P | `<details>` acessível; categorias |
| `feriados-municipais` | P14 | **DEVE** | R | usado por prazos; seed idempotente |
| `historia` (Sucesu) | P14 | **DEVE** | P | coberto por `a-instituicao`/`a-cidade` |
| `sobre-nos` (Sucesu) | P14 | **DEVE** | P | coberto por `a-instituicao`/`a-cidade` |

### P15 — publicações, atos e arquivo público

| Módulo | Fase | Veredito | Dados | Observação |
|---|---|---|---|---|
| `publicacoes` | P15 | **DEVE** | P | repositório editorial (editais, manuais, mensagens); anexos via Media |
| `diario-oficial` | P15 | **DEVE** | P | edições + PDF + extra; sem ETL |
| `carta-de-servicos` | P15 | **DEVE** | P | catálogo de serviços; requisitos/prazos/custo |
| `licitacoes-antigas` | P15 | **PODE** | P | arquivo read-only curado; sem ETL (ADR-042) |
| `arquivo` (V5) | P15 | **PODE** | P/S | biblioteca pública sobre Media; `drive` interno é o Media/Gallery |
| `mais-conteudos` | P15 | **PODE** | P | coleções/categorias; não vira CMS genérico |
| `drive` | — | **FEITO** | S | Media/Gallery cobrem o gerenciador de arquivos |

### P16 — pessoas e certames

| Módulo | Fase | Veredito | Dados | Observação |
|---|---|---|---|---|
| `servidor` | P16 | **DEVE** | S | campo público mínimo; CPF/matrícula nunca públicos |
| `terceirizados` | P16 | **DEVE** | S | nome/empresa/função; base legal e retenção |
| `estagiarios` | P16 | **DEVE** | S | nome/curso/instituição/período |
| `concursos-pss` | P16 | **DEVE** | P | edital, datas, status, resultados/anexos |

### P17 — obras, contratos e integridade

| Módulo | Fase | Veredito | Dados | Observação |
|---|---|---|---|---|
| `obras` | P17 | **DEVE** | P | cadastro mestre; valor como string decimal |
| `obras-paralisadas` | P17 | **DEVE** | P | **visão** de `obras` (`status=paralisada`), sem tabela própria |
| `licitantes-sancionados` | P17 | **DEVE** | P/S | sanção/processo/período; base legal |
| `comite-de-investimentos` | P17 | **DEVE** | P | atas/documentos; membros |
| `viap` | P17 | **DEVE** | P/S | pagamentos por gabinete; perfil Câmara |
| `requerimento-de-diarias` | P17 | **DEVE** | P/S | servidor/destino/valor; LGPD |
| `unidade-gestora` | P17 | **DEVE** | R | referência para Licitações; não duplicar Órgãos |

### P18 — Câmara municipal (perfil de produto)

| Módulo | Fase | Veredito | Dados | Observação |
|---|---|---|---|---|
| `sessoes` | P18 | **PODE** | P | só com `structure_type=camara`/contrato |
| `pauta-do-dia` | P18 | **PODE** | P | itens da sessão |
| `vereadores` | P18 | **PODE** | P | vereador + mandato |
| `requerimentos` | P18 | **PODE** | P | autor, número/ano, anexo |
| `atas-e-pontos-de-frequencia` | P18 | **PODE** | P | ata + presença |
| `transmissoes` | P18 | **PODE** | P | **link** para transmissão; sem embed de terceiro |
| `tv-camara` | P18 | **PODE** | P | catálogo de vídeos por link; thumbnail local |

### P19 — engajamento e comunicação

| Módulo | Fase | Veredito | Dados | Observação |
|---|---|---|---|---|
| `agenda-de-eventos` | P19 | **DEVE** | P | eventos com data/local; calendário/lista |
| `fale-conosco` (Sucesu) | P19 | **DEVE** | S | formulário + notificação; distinto da Ouvidoria |
| `trabalhe-conosco` (Sucesu) | P19 | **PODE** | S | vagas + candidaturas; consentimento/retenção |
| `enquetes` | P19 | **DEVE** | P | voto único por sessão/hash; sem PII |
| `newsletters` | P19 | **PODE** | S | double opt-in, unsubscribe, LGPD |
| `revisoes` | P19 | **PODE** | S | avaliação do site; respostas agregadas |
| `formularios-dinamicos` | P19 | **COND** | S | só com demanda; módulo primeiro, sem service |

### P20 — associações e parceiros (condicional)

| Módulo | Fase | Veredito | Dados | Observação |
|---|---|---|---|---|
| `associados` (Sucesu) | P20 | **COND** | S | só se o cliente for associação; não é o perfil municipal |
| `parceiros-institucionais` (Sucesu) | P20 | **COND** | P | parceiros/logos/links; pode ser conteúdo institucional |
| `associe-se` (Sucesu) | P20 | **COND** | S | lead de associação; consentimento |
| `unidade-regional` (Sucesu) | — | **NÃO** | multi-tenant/regional exige ADR própria; em P20, no máximo referência para associados |

### P21 — saúde e assistência (LGPD reforçada)

| Módulo | Fase | Veredito | Dados | Observação |
|---|---|---|---|---|
| `fila-espera-sus` | P21 | **COND** | S | público só **agregado**; individual restrito/pseudonimizado |
| `e-vacina` | P21 | **COND** | S | cobertura agregada; CSV, sem depender de Google Sheets em runtime |
| `saude` (plano/serviços/medicamentos/estoques) | P21 | **DEVE** | P/S | PNTP 18.1–18.6; estoque ≤15 dias |
| `conselhos` (saúde) | P21 | **DEVE** | P | membros/contato/atas/relatórios; reuso em P27 |

### P22 — receita, despesa, dívida ativa e transferências (PNTP 3–5)

| Módulo | Fase | Veredito | Dados | Observação |
|---|---|---|---|---|
| `receita` | P22 | **DEVE** | P | 3.1/3.2 essenciais; prevista × realizada; CSV; 3 anos |
| `despesa` | P22 | **DEVE** | P/S | 4.1–4.3 essenciais; credor/empenho/licitação |
| `divida_ativa` | P22 | **DEVE** | P/S | nome + valor; sem CPF/endereço |
| `transferencias` | P22 | **DEVE** | P | 5.1–5.3; inteiro teor via Media |

### P23 — contratos, SRP e PAC (PNTP 8.5–8.6/9)

| Módulo | Fase | Veredito | Dados | Observação |
|---|---|---|---|---|
| `contratos` | P23 | **DEVE** | P/S | 9.1–9.4; aditivos/fiscais/pagamentos |
| `atas-srp` | P23 | **DEVE** | P | 8.5; atas + adesões |
| `plano-contratacoes` | P23 | **DEVE** | P | 8.6; PAC real (sem declaração) |

### P24 — planejamento e prestação de contas (PNTP 11)

| Módulo | Fase | Veredito | Dados | Observação |
|---|---|---|---|---|
| `planejamento` | P24 | **DEVE** | P | RGF/RREO/PPA/LDO/LOA essenciais; balanço/relatório/TC |

### P25 — SIC, LGPD e governo digital (PNTP 12/15)

| Módulo | Fase | Veredito | Dados | Observação |
|---|---|---|---|---|
| `sic` | P25 | **DEVE** | P/S | unidade/norma/prazos/classificados/desclassificados |
| `solicitacoes` | P25 | **DEVE** | S | 15.3; serviço digital com protocolo; não é helpdesk |
| `satisfacao` | P25 | **DEVE** | P | 15.6; resultado agregado |
| `lgpd` (existente) | P25 | **DEVE** | S | DPO/política; já implementado, completar canal |

### P26 — acessibilidade e mapa (PNTP 13/2.9)

| Módulo | Fase | Veredito | Dados | Observação |
|---|---|---|---|---|
| `acessibilidade` (layout) | P26 | **DEVE** | P | símbolo/contraste/fonte/breadcrumb |
| `mapa-do-site` | P26 | **DEVE** | P | derivado do manifest/sitemap |

### P27 — executivo: renúncias, emendas e educação (PNTP 16/17/19)

| Módulo | Fase | Veredito | Dados | Observação |
|---|---|---|---|---|
| `renuncias` | P27 | **DEVE** | P/S | 16.1–16.4; fundamento/valores/beneficiários |
| `emendas` | P27 | **DEVE** | P | 17.1–17.3; HTML + execução |
| `educacao` | P27 | **DEVE** | P/S | 19.1–19.4; creche sem nome |
| `conselhos` (Fundeb/Assistência) | P27 | **DEVE** | P | reuso do módulo de P21 |

### P28 — legislativo completo (PNTP 20)

| Módulo | Fase | Veredito | Dados | Observação |
|---|---|---|---|---|
| `proposicoes` | P28 | **PODE** | P | 20.3; tramitação |
| `comissoes` | P28 | **PODE** | P | 20.5; pautas |
| `votacoes` | P28 | **PODE** | P | 20.7; nominal/unânime |
| `contas-executivo` | P28 | **PODE** | P | 20.8; linka P24 |
| `atividades` | P28 | **PODE** | P | 20.11; agregação |
| `cotas`/`viap` | P28/P17 | **PODE** | P/S | 20.10; dono único P17 |

### P29 — conformidade PNTP (transversal)

| Módulo | Fase | Veredito | Dados | Observação |
|---|---|---|---|---|
| `declaracoes` | P29 | **DEVE** | P | declaração de inexistência |
| `pntp` (CMS) | P29 | **PODE** | P | matriz de evidências; não é o portal público |

### Unidades Sucesu — mapeamento nominal

| Unidade (`05_modulos/`) | Fase | Veredito | Observação |
|---|---|---|---|
| `Publicacoes/Noticias` | P6 | **DEVE** | paridade editorial; já coberto |
| `Publicacoes/Agenda` | P19 | **DEVE** | Agenda de Eventos |
| `Publicacoes/TrabalheConosco` | P19 | **PODE** | vagas/candidaturas; LGPD |
| `Institucional/FaleConosco` | P19 | **DEVE** | contato + notificação; distinto da Ouvidoria |
| `Institucional/AssocieSe` | P20 | **COND** | lead de associação |
| `Institucional/Historia` | P14 | **DEVE** | coberto por A Instituição/A Cidade |
| `Institucional/SobreNos` | P14 | **DEVE** | coberto por A Instituição/A Cidade |
| `Conexoes/Associados` | P20 | **COND** | cliente de associação |
| `Conexoes/ParceirosInstitucionais` | P20 | **COND** | parceiros/logos/links |
| `Conexoes/UnidadeRegional` | — | **NÃO** | multi-tenant/regional exige ADR; em P20, só referência para associados |
| `Infraestrutura/CertificadoDigital` | P13 | **PODE** | ICP-Brasil; TSA/OCSP |
| `Infraestrutura/FeedRss` | P7/P9 | **PODE** | feed nativo; service só com 2º consumidor |
| `Infraestrutura/GestaoPermissoes` | P2 | **DEVE** | UI sobre ADR-033; modelo legado rejeitado |
| `Infraestrutura/MailAudit` | P3/P9 | **PODE** | histórico/metadados de envio |
| `Layouts/BasicPage` | P5 | **DEVE** | páginas como dado |
| `Layouts/Homepage` | P5 | **DEVE** | home por seções |
| `Support/StructuralLandingEditor` | P5 | **DEVE** | contrato de seções; sem Blade no banco |
| `Support/SupportConfigs` | P0/P1/P3 | **DEVE** | configurações/flags/manutenção; modelo legado rejeitado |
| `Support/NoticiasImport` | — | **NÃO** | ETL de legado (ADR-042) |
| `Exemplos/ExemploAPI` | — | **NÃO** | exemplo de anatomia, não produto |

### Unidades `lotep-v2` — mapeamento nominal

| Unidade | Fase | Veredito | Observação |
|---|---|---|---|
| `publicacoes-noticias` | P6 | **DEVE** | paridade editorial |
| `publicacoes-legislacao` | P10 | **DEVE** | versionamento/consolidação |
| `publicacoes-licitacoes` | P8 | **DEVE** | 5 tabelas, `show_value` |
| `dadosabertos-transparenciafiscal` | P12 | **DEVE** | extensão de `DadosAbertos` |
| `infraestrutura-formulariosdinamicos` | P19 | **COND** | motor versionado; módulo primeiro |
| `infraestrutura-gestaopermissoes` | P2 | **DEVE** | UI sobre ADR-033 |
| `servicos-ouvidoria` | P11 | **DEVE** | protocolo/prazo |
| `support-structurallandingeditor` | P5 | **DEVE** | contrato de seções; sem Blade no banco |

### Unidades `sucesu_analise` — arquitetura e serviços

| Unidade | Fase | Veredito | Observação |
|---|---|---|---|
| `01_arquitetura/01-boot-autodiscovery` | — | **FEITO** | descoberta/manifesto (ADR-014) |
| `01_arquitetura/02-roteamento` | — | **FEITO** | áreas/rotas por convenção |
| `01_arquitetura/03-auth-rbac-sentinel` | P2 | **DEVE** | só o **modelo** ADR-033; Sentinel rejeitado |
| `01_arquitetura/04-middlewares-seguranca` | P3 | **DEVE** | manutenção/ativação; CSP/cache já feitos |
| `01_arquitetura/05-persistencia-uuid-migracoes` | — | **FEITO** | PG 18/uuidv7 |
| `01_arquitetura/06-tenancy-regional` | — | **NÃO** | multi-tenant exige ADR; V7 single-tenant |
| `01_arquitetura/07-controllers-core` | P0 | **DEVE** | padrão de controller/Action |
| `01_arquitetura/08-helpers-composers` | — | **FEITO** | evitar helper global; usar DI |
| `01_arquitetura/09-cache-csp-minify-maintenance` | P3 | **DEVE** | manutenção; CSP/cache já feitos; minify rejeitado |
| `01_arquitetura/10-grupos-e-modulos-vazios` | — | **FEITO** | manifesto/grupos |
| `01_arquitetura/11-satelites-build-config` | — | **FEITO** | Vite/runtime |
| `02_servicos-base/storage` | — | **FEITO** | S3/RustFS (ADR-030) |
| `02_servicos-base/media` | — | **FEITO** | Media/Gallery |
| `02_servicos-base/activity-logger` | — | **FEITO** | audit trail (ADR-035) |
| `02_servicos-base/mail-service` | P9/P13 | **PODE** | notificações/metadados |
| `02_servicos-base/digital-signature` | P13 | **PODE** | ICP/PAdES |
| `02_servicos-base/feed-rss` | P7/P9 | **PODE** | feed nativo |
| `02_servicos-base/dashboard` | P4 | **DEVE** | cards/relatórios |
| `03_servicos-ui/content-rich-editor` | — | **FEITO** | RichText/AST; conversores P9 |
| `03_servicos-ui/excel-importer` | P9 | **DEVE** | CSV operacional |
| `03_servicos-ui/gallery` | — | **FEITO** | Gallery |
| `03_servicos-ui/landing-sections-editor` | P5 | **DEVE** | seções/blocos |
| `03_servicos-ui/media` | — | **FEITO** | Media |
| `03_servicos-ui/search` | P7/P9 | **DEVE** | local → compartilhada |
| `03_servicos-ui/seo` | — | **FEITO** | SEO service |
| `04_ui` (design system/catálogo) | P1/P5 | **DEVE** | shell/componentes; sem Bootstrap/jQuery |
| `07_dados-iniciais` (seeds) | P5/P14 | **DEVE** | demo idempotente (ADR-041), nunca bootstrap |
| `08_matriz` (permissões/entidades/flags) | P2/P3 | **DEVE** | insumo de UI; vocabulário ADR-033 |
| `09_reimplementacao` / `v7_implementation` | — | **FONTE** | plano/ordem; não é código |

## 2. Módulos que não entram

| Módulo/origem | Veredito | Motivo |
|---|---|---|
| `gemini` (V5) | **NÃO** | IA externa sem ADR, risco de PII, dependência não vendorizada |
| `NoticiasImport` (Sucesu) | **NÃO** | ETL de legado (ADR-042) |
| `ExemploAPI` (Sucesu) | **NÃO** | exemplo de anatomia, não produto |
| `UnidadeRegional` (Sucesu) | **NÃO** | multi-tenant/regional não é o V7 single-tenant; exigiria ADR |
| `tecvoto` | **NÃO** | outro produto (eleições), fora do CMS municipal |
| `cms`/`sucesu-cms` (panoramas) | **NÃO** | são fontes/QA, não módulos |
| `_Exemplos`/`_template`/`_tools` | **NÃO** | material de análise |
| `Drive` como módulo próprio | **FEITO** | `Media`/`Gallery` já cobrem upload/catálogo/download |
| `Theme` como service | **FEITO** | é layout (ADR-016), não service |
| `Landing`/`Notifications` como service sem 2º consumidor | **NÃO** | ADR-001/015; ver P5/P9 |

## 3. Regras transversais de implementação de módulo

1. **Um dono por domínio** (C13): `Obras` × `Obras Paralisadas` é uma tabela + visão; `Drive` é
   Media; `configuracoes` × `outras-configuracoes` é um schema.
2. **Dados pessoais** (S): classificação, campo público mínimo, acesso restrito, retenção,
   auditoria de leitura; nunca CPF/matrícula/endereço em página pública sem base legal.
3. **Anexos** sempre via `Media` (magic bytes, AVIF/WebP, `media.stream`); nunca path local/URL S3
   exposta.
4. **Conteúdo** em AST `jsonb`; listagens/detalhes em Blade semântico; nenhum HTML/Blade no banco.
5. **Rotas** com `route()`/`localized_url()` (locale); sem link morto; sitemap via `SitemapSource`.
6. **Busca** entra no índice compartilhado (P9) via `SearchSource`; não criar índice paralelo.
7. **Permissões** `{modulo}.ver/editar/aprovar/arquivar`; módulo declara no manifesto; deny-by-default.
8. **Auditoria** em toda mutação e leitura sensível; log estruturado sem PII.
9. **Sem service prematuro**: módulo primeiro; extrair só com 2º consumidor real (ADR-015).
10. **Sem ETL**: carga manual/CSV operacional, nunca pipeline do legado (ADR-042).

## 4. Ordem de execução dos módulos

```
P14 institucional → P15 publicações → P16 pessoas → P17 obras/contratos
→ P18 câmara (cond.) → P19 engajamento → P20 associações (cond.) → P21 saúde (cond.)
```

`P13` (integrações externas) é uma trilha condicionada a terceiros; não bloqueia P14–P21. A ordem
interna P14–P21 é estrita; cada fase começa quando a anterior fecha.
