A base do CMMV está no uso de contratos como o alicerce da aplicação. Hoje em dia, formatos modernos de comunicação como REST, GraphQL e WebSocket seguem um padrão semelhante: ao expor dados, é essencial manter a consistência — qualquer mudança fora de controle pode quebrar os consumidores da sua API. Isso se torna ainda mais crítico quando outros sistemas dependem do seu serviço.

O mercado adotou o JSON porque é fácil de usar e funciona em praticamente qualquer linguagem. Mas isso não significa que ele seja o formato ideal para tudo.

Se você já trabalhou com linguagens fortemente tipadas como C++ ou C#, sabe que lidar com JSON pode ser uma dor de cabeça: dinâmico demais, validação confusa, conversões manuais… e no fim, o código vira uma bagunça. Por isso, sistemas baseados em contratos bem definidos não são nenhuma novidade. O SOAP já fazia isso com o WSDL, e o Protobuf segue o mesmo princípio — amplamente usado em microserviços via RPC, e por um bom motivo: você define os dados de forma clara, tipada e estruturada, e a partir disso, tudo que for necessário para a comunicação pode ser gerado automaticamente, em qualquer linguagem.

O que isso significa na prática?

Significa que você não precisa mais escrever fetch, nem lidar com headers, autenticação, transformação de dados ou validação manualmente. No CMMV, você define o contrato — e só. O sistema entende exatamente o que enviar, o que receber, como validar, transformar, autenticar e processar tudo. Você só implementa o que realmente precisa de lógica personalizada. Todo o resto já está pronto.

No frontend, isso vira uma simples chamada de função que retorna os dados — sem fetch, sem axios, sem parsing ou validação manual.
No backend, você não precisa criar controladores, DTOs, services, nem nada disso. O contrato define tudo. Você só conecta a lógica específica onde for necessário.

Isso reduz drasticamente o tempo de desenvolvimento, corta código repetitivo e garante que tudo funcione do jeito certo desde o início. É produtividade real, tipagem forte e comunicação de ponta a ponta — sem gambiarras, sem boilerplate, sem reinventar a roda.

Contrato no CMMV

Na essência, o contrato no CMMV funciona como um modelo schema-first, parecido com o GraphQL. Você define a estrutura e, se necessário, adiciona resolvers específicos.
Mas o CMMV vai muito além: ele já integra validação de dados com class-validator, transformação automática com class-transformer, e o núcleo do sistema gera automaticamente interfaces, DTOs e schemas otimizados com fast-json-stringify. Esses schemas se tornam a base para todo o restante que será executado pelos módulos.

Transpiladores e Módulos

Um dos pontos mais poderosos da arquitetura do CMMV está no conceito de transpiladores e módulos — é aqui que a mágica realmente acontece.

Uma vez que os contratos estão definidos, os transpiladores entram em ação para gerar automaticamente o código necessário para cada parte da sua aplicação.

No CMMV, um módulo representa uma funcionalidade específica — como REST, GraphQL, Protobuf, WebSocket, SSR, integração com banco de dados, entre outros.
Cada módulo pode ter um ou mais transpiladores responsáveis por ler os contratos do projeto e gerar exatamente o que é preciso para que aquele módulo funcione de forma integrada ao restante do sistema.

Por exemplo:

No módulo GraphQL, os transpiladores geram automaticamente:

  • Resolvers

  • Definições de tipo (typeDefs)

  • Queries e mutations

  • Controladores base para operações padrão (CRUD)

No módulo REST, os transpiladores geram:

  • Controladores HTTP

  • Endpoints com validação completa

  • Definições de rotas

  • Schemas de serialização otimizados com fast-json-stringify

No módulo de banco de dados (MongoDB, SQLite, PostgreSQL, etc.), os transpiladores geram:

  • Schemas ORM/ODM

  • Migrations

  • Comandos para seed ou transformação de dados com base no contrato

Além disso, os transpiladores também podem ser usados para gerar:

  • Interfaces TypeScript para o frontend

  • Mixins RPC

  • Validação no client

  • E qualquer outro tipo de código que precise estar em sincronia com o backend

O melhor de tudo: os transpiladores são totalmente modulares e extensíveis.

Você pode criar seus próprios transpiladores para gerar códigos específicos, personalizados conforme as necessidades do seu projeto — sem quebrar a estrutura central do CMMV.