# Modelgen Generates platform-specific models from JSON Schema. Reads schema once, writes models for multiple targets. **Status:** dev --- ## What It Does Modelgen takes a JSON Schema definition and produces model code for different platforms: - **Pydantic** -- Python data validation models - **Django ORM** -- Django model classes - **Prisma** -- Prisma schema definitions One schema, multiple outputs. ## Extractors Modelgen also works in reverse. Extractors read existing codebases and produce a normalized schema representation: - **Django extractor** -- reads Django model files - **SQLAlchemy extractor** -- reads SQLAlchemy model files - **Prisma extractor** -- reads Prisma schema files Extractors feed into graphgen for visualization. ## Output Generated models are written to `gen//models/`. ``` gen//models/ ├── pydantic/ ├── django/ └── prisma/ ``` ## CLI ```bash python -m modelgen ``` Reads from `schema.json` (the project source of truth) and writes to the configured output directory. ## Shared Distribution Modelgen is also distributed as a shared component via `ctrl/spr.py`. This allows other projects to use model generation without running full soleprint. ## Schema Source The source of truth is `schema.json` at the project root. All model generation starts from this file. Room-specific schema extensions live in `cfg//models/`.