Every DOJ form — citizen request vs. clerk processing, blank vs. completed
Each card below shows one DOJ form in up to four states so you can review the exact wording and fields. Field labels and names are taken verbatim from the live code (document_templates.fields_json, api/*.php, sql/schema.sql); all values are realistic mock data.
How filing works
A citizen requests at the service window / in-city terminal / DOJ phone app (or the web self-representation panel). The submission lands in the Clerk's pending queue — it is not effective until accepted. A clerk (or admin / master clerk) reviews and accepts; acceptance writes the official registry record, assigns the registry number, queues an office copy at the print desk, and notifies the filer. Reject returns it with a note.
The real citizen-vs-clerk distinction
For the four registry filings there is one shared template — citizen and clerk open the same intake form with the same fields (built by renderDojForm()). There is no separate clerk form with extra input boxes. What the clerk adds is the Review & Accept step: an approve/reject decision + note, after which the system assigns the registry number, status and dates. Law-office roles see the same fields on a letterhead "paper" layout (renderDojPaperForm()). Licenses, warrants, reports and citations are separate pipelines, noted on their cards.
Other court-filing templates
Additional document_templates rows that use the same intake form + clerk-accept flow. On acceptance these are not written to a registry table — they are filed on the submission's office copy and numbered FIL-#####, then queued at the print desk.
| Template (slug) | Category | Field keys → labels | Citizen-submittable? |
|---|
Findings & honest notes from the code
🚩 Some intake fields are never stored in the registry
On acceptance the registry insert only takes a subset of the template fields. Case summary, marriage ceremony_date, and property address are collected on the form but not written to cases/marriage_registry/property_registry. They survive only on the filing submission's office-copy document — so the public registry row is missing that detail.
🚩 citizen_submittable is defined but not enforced on self-file
The flag marks Case/Property/Professional/Motion as 0 (not citizen-submittable), yet the citizen dashboard offers "File a Case / Property Deed / Professional Registration" buttons, getTemplate serves any template to any signed-in user, and submitFiling accepts a citizen self-filing on their own behalf without checking the flag. The "bring it to a City Services window" message in js/filings.js is defensive — the current backend does not actually refuse those web self-files. Decide whether the flag should be enforced or the buttons removed.
ℹ️ Warrants, reports & citations have no citizen form
These are police-only (api/mdt.php) or issued in-game. A citation has no web create form at all — the website only reads/seeds them. There is no service-window citizen version to review; the cards show the officer/MDT form instead.
ℹ️ One template, two skins
Clerks and citizens fill the identical field set. Law-office roles (attorney, public defender, DA, prosecutor, paralegal) render that same template as an official DOJ letterhead "paper" document instead of the pop-up form — same data-field keys, so the collected values are identical.
CrestWood RP · Department of Justice — internal system review. Field names verbatim from live code; all values are mock data.