---
title: "mova-serve — Mova code model"
description: "Mova code model of models/mova-serve.groupant: components with their labels, obernants and the model text."
url: "https://groupants.elamur.ai/free/en/mova/models/mova-serve.groupant/"
---
Elamur: [Mova](https://md.mova.elamur.ai/free/en/) · [Dictionary](https://md.dictionary.elamur.ai/free/en/) · [Translate](https://md.translate.elamur.ai/free/en/) · [Research](https://md.research.elamur.ai/free/en/) · **Groupants**

This page as HTML: <https://groupants.elamur.ai/free/en/mova/models/mova-serve.groupant/>

# mova-serve

The groupant beside models/mova-serve.groupant in the Mova repository: what the code computes, what it never does, how to go back from its outputs, its invariants, cost and checks.

## Facts

- **kind:** groupant group
- **status:** partial source composition
- **bound sources:** 13
- **repository folder:** [`models/mova-serve.groupant`](https://github.com/ElamurAI/mova-free/tree/main/models/mova-serve.groupant)

> **Implementation material.** A Mova code model describes this code at one source revision: partial models, finite checks and their stated scope. It is not a reviewed general exposition, and its labels are shown as written, never raised.

## Components

| component | label | where |
|---|---|---|
| **Approximant** | partial source derived | [Forward](#forward) |
| **Ast** | not materialized |  |
| **Composition** | partial source derived | [Composition](#composition) |
| **Cost** | partial source derived | [Cost](#cost) |
| **Descriptant** | partial source derived | [Descriptant](#descriptant) |
| **Invariant** | partial source derived | [Invariant](#invariant) |
| **Tests** | finite evidence | [Tests](#tests) |

## Obernants

The typed relations around the forward model: the behaviour complement (what the code never does), the reverse reconstruction (every input compatible with an output) and specialised views.

| relation | type | label | where |
|---|---|---|---|
| Behavior complement | behavior complement | partial source derived finite checks | [Behavior complement](#behavior-complement) |
| Reverse reconstruction | reverse reconstruction | partial source derived finite checks | [Reverse reconstruction](#reverse-reconstruction) |

## Model text


### Descriptant

The public parse service: the parse pages with shareable addresses, the JSON API and the MCP server over
`mova-parse` (level 1 and the per-language models) and `prag` (frames, the speech-act perceptron, inferences), with a
W-TinyLFU cache, a fixed worker pool behind a bounded queue, word quotas by plan, accounts (Google sign-in, API keys,
terms acceptance), and a bounded request log.

### Forward

request → `server::respond` → identity (`auth`: key or session; else the address) → limits (`quota` words,
`ratelimit` burst, characters) → `cache` or the pool running `engine::analyse` → `html` page (with `svg` trees), JSON,
CoNLL-U or `mcp` result → `store` log line, ring slot, usage count.

### Invariant

The analysis is a function of (normalised text, language choice, model files); the cache key holds all three. Every
parse answer carries the client's quota; every parse request is logged with its text; state lives under one
directory with bounded sizes and ages.

### Cost

A cache hit ≈0.01–0.06 ms through the route; a miss ≈18 ms for 100 words, 0.66 s for 5 000 words; 821 MB resident
after loading (2026-11-06).

### Composition

Leaves are the file groupants beside `tools/mova-serve/src/*.rs`. The wiring is checked by `server::tests` (API schema
and cache, limits, quotas, busy queue with a control, MCP with a key, pages and log, the account flow) and by two
`mova-serve bench` processes giving the same digest; the leaves' own tests check each part alone.

### Behavior complement

No TLS (the proxy's), no billing, no OAuth 2.1 authorization for MCP (API keys), no frames or pragmatics for French,
no expression lens.

### Reverse reconstruction

The request log recovers what was asked, when, through which endpoint, with which outcome; the versions in every
answer recover which model files answered.

### Tests

`cargo test --release -p mova-serve`: all module tests (2026-11-06); `mova-serve bench` twice; headless screenshots at
1280 and 390 px; the MCP stdio transport end to end against a local server.

## Provenance

- **repository commit:** `2e25d7bfae9a`
