vehicles 0.4.1 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.rubocop_todo.yml +164 -0
- data/CHANGELOG.md +321 -0
- data/README.md +88 -15
- data/data/PROVENANCE-vehicles.md +12 -0
- data/data/plates/PROVENANCE.md +10 -0
- data/data/plates/_decode/at-districts.yml +287 -0
- data/data/plates/_decode/ch-cantons.yml +110 -0
- data/data/plates/_decode/cn-issuing-offices.yml +463 -0
- data/data/plates/_decode/cn-provinces.yml +614 -0
- data/data/plates/_decode/cz-kraj.yml +159 -0
- data/data/plates/_decode/dk-serial-blocks.yml +327 -0
- data/data/plates/_decode/es-provinces.yml +116 -0
- data/data/plates/_decode/fr-departements.yml +191 -0
- data/data/plates/_decode/gb-age-identifiers.yml +170 -0
- data/data/plates/_decode/gb-memory-tags.yml +202 -0
- data/data/plates/_decode/gr-prefectures.yml +1408 -0
- data/data/plates/_decode/hr-cities.yml +315 -0
- data/data/plates/_decode/ie-counties.yml +227 -0
- data/data/plates/_decode/in-state-codes.yml +169 -0
- data/data/plates/_decode/is-districts-1938.yml +116 -0
- data/data/plates/_decode/it-provinces.yml +348 -0
- data/data/plates/_decode/jp-office-marks.yml +960 -0
- data/data/plates/_decode/jp-use-marks.yml +205 -0
- data/data/plates/_decode/kr-authority-marks.yml +146 -0
- data/data/plates/_decode/kr-use-syllables.yml +194 -0
- data/data/plates/_decode/lu-series-order.yml +638 -0
- data/data/plates/_decode/mx-entity-series.yml +380 -0
- data/data/plates/_decode/my-index-marks.yml +271 -0
- data/data/plates/_decode/no-counties-1913.yml +148 -0
- data/data/plates/_decode/no-districts.yml +901 -0
- data/data/plates/_decode/pl-powiats.yml +567 -0
- data/data/plates/_decode/pt-trailer-services.yml +96 -0
- data/data/plates/_decode/ro-counties.yml +213 -0
- data/data/plates/_decode/se-diplomatic.yml +220 -0
- data/data/plates/_decode/si-regions.yml +123 -0
- data/data/plates/_decode/sk-districts.yml +314 -0
- data/data/plates/_decode/th-registration-elements.yml +208 -0
- data/data/plates/_decode/ua-regions.yml +393 -0
- data/data/plates/_decode/za-licence-marks.yml +215 -0
- data/data/plates/_meta/classes.yml +26 -0
- data/data/plates/_meta/separators.yml +102 -0
- data/data/plates/ad.yml +961 -0
- data/data/plates/ar.yml +762 -0
- data/data/plates/at.yml +1424 -0
- data/data/plates/au-act.yml +472 -0
- data/data/plates/au-nsw.yml +282 -0
- data/data/plates/au-nt.yml +431 -0
- data/data/plates/au-qld.yml +272 -0
- data/data/plates/au-sa.yml +248 -0
- data/data/plates/au-tas.yml +302 -0
- data/data/plates/au-vic.yml +215 -0
- data/data/plates/au-wa.yml +309 -0
- data/data/plates/be.yml +1840 -0
- data/data/plates/br.yml +1152 -0
- data/data/plates/ca-ab.yml +430 -0
- data/data/plates/ca-bc.yml +697 -0
- data/data/plates/ca-mb.yml +499 -0
- data/data/plates/ca-nb.yml +537 -0
- data/data/plates/ca-nl.yml +743 -0
- data/data/plates/ca-ns.yml +808 -0
- data/data/plates/ca-nt.yml +610 -0
- data/data/plates/ca-nu.yml +280 -0
- data/data/plates/ca-on.yml +881 -0
- data/data/plates/ca-pe.yml +592 -0
- data/data/plates/ca-qc.yml +1036 -0
- data/data/plates/ca-sk.yml +256 -0
- data/data/plates/ca-yt.yml +656 -0
- data/data/plates/ch.yml +1273 -0
- data/data/plates/cn.yml +1431 -0
- data/data/plates/cy.yml +688 -0
- data/data/plates/cz.yml +1179 -0
- data/data/plates/de.yml +1107 -0
- data/data/plates/dk.yml +1647 -0
- data/data/plates/ee.yml +1275 -0
- data/data/plates/es.yml +888 -0
- data/data/plates/fi.yml +1271 -0
- data/data/plates/fr.yml +1265 -0
- data/data/plates/gb.yml +1188 -0
- data/data/plates/gr.yml +721 -0
- data/data/plates/hr.yml +860 -0
- data/data/plates/hu.yml +959 -0
- data/data/plates/ie.yml +775 -0
- data/data/plates/in.yml +1172 -0
- data/data/plates/is.yml +667 -0
- data/data/plates/it.yml +1317 -0
- data/data/plates/jp.yml +3650 -0
- data/data/plates/kr.yml +1375 -0
- data/data/plates/li.yml +1010 -0
- data/data/plates/lt.yml +879 -0
- data/data/plates/lu.yml +842 -0
- data/data/plates/lv.yml +924 -0
- data/data/plates/mc.yml +1024 -0
- data/data/plates/mt.yml +854 -0
- data/data/plates/mx.yml +1372 -0
- data/data/plates/my.yml +685 -0
- data/data/plates/nl.yml +1016 -0
- data/data/plates/no.yml +1018 -0
- data/data/plates/nz.yml +1699 -0
- data/data/plates/pl.yml +1296 -0
- data/data/plates/pt.yml +847 -0
- data/data/plates/ro.yml +785 -0
- data/data/plates/se.yml +1091 -0
- data/data/plates/si.yml +1105 -0
- data/data/plates/sk.yml +1439 -0
- data/data/plates/sm.yml +1119 -0
- data/data/plates/th.yml +1150 -0
- data/data/plates/ua.yml +1672 -0
- data/data/plates/us-ak.yml +763 -0
- data/data/plates/us-al.yml +457 -0
- data/data/plates/us-ar.yml +427 -0
- data/data/plates/us-as.yml +454 -0
- data/data/plates/us-az.yml +430 -0
- data/data/plates/us-ca.yml +892 -0
- data/data/plates/us-co.yml +452 -0
- data/data/plates/us-ct.yml +427 -0
- data/data/plates/us-dc.yml +614 -0
- data/data/plates/us-de.yml +551 -0
- data/data/plates/us-fl.yml +741 -0
- data/data/plates/us-ga.yml +644 -0
- data/data/plates/us-gu.yml +658 -0
- data/data/plates/us-hi.yml +585 -0
- data/data/plates/us-ia.yml +438 -0
- data/data/plates/us-id.yml +531 -0
- data/data/plates/us-il.yml +516 -0
- data/data/plates/us-in.yml +324 -0
- data/data/plates/us-ks.yml +351 -0
- data/data/plates/us-ky.yml +770 -0
- data/data/plates/us-la.yml +568 -0
- data/data/plates/us-ma.yml +379 -0
- data/data/plates/us-md.yml +536 -0
- data/data/plates/us-me.yml +445 -0
- data/data/plates/us-mi.yml +408 -0
- data/data/plates/us-mn.yml +411 -0
- data/data/plates/us-mo.yml +356 -0
- data/data/plates/us-mp.yml +402 -0
- data/data/plates/us-ms.yml +432 -0
- data/data/plates/us-mt.yml +619 -0
- data/data/plates/us-nc.yml +602 -0
- data/data/plates/us-nd.yml +419 -0
- data/data/plates/us-ne.yml +483 -0
- data/data/plates/us-nh.yml +394 -0
- data/data/plates/us-nj.yml +547 -0
- data/data/plates/us-nm.yml +574 -0
- data/data/plates/us-nv.yml +655 -0
- data/data/plates/us-ny.yml +592 -0
- data/data/plates/us-oh.yml +404 -0
- data/data/plates/us-ok.yml +513 -0
- data/data/plates/us-or.yml +392 -0
- data/data/plates/us-pa.yml +506 -0
- data/data/plates/us-pr.yml +507 -0
- data/data/plates/us-ri.yml +445 -0
- data/data/plates/us-sc.yml +605 -0
- data/data/plates/us-sd.yml +428 -0
- data/data/plates/us-tn.yml +471 -0
- data/data/plates/us-tx.yml +535 -0
- data/data/plates/us-ut.yml +384 -0
- data/data/plates/us-va.yml +567 -0
- data/data/plates/us-vi.yml +489 -0
- data/data/plates/us-vt.yml +458 -0
- data/data/plates/us-wa.yml +484 -0
- data/data/plates/us-wi.yml +509 -0
- data/data/plates/us-wv.yml +446 -0
- data/data/plates/us-wy.yml +523 -0
- data/data/plates/va.yml +604 -0
- data/data/plates/za.yml +1141 -0
- data/data/vehicles.json +160653 -105090
- data/lib/vehicles/configuration.rb +18 -2
- data/lib/vehicles/dataset.rb +73 -18
- data/lib/vehicles/fuzzy.rb +115 -0
- data/lib/vehicles/http.rb +48 -0
- data/lib/vehicles/make.rb +36 -6
- data/lib/vehicles/mcp_server.rb +5 -5
- data/lib/vehicles/model.rb +42 -6
- data/lib/vehicles/plates/jurisdiction.rb +32 -0
- data/lib/vehicles/plates/series.rb +291 -0
- data/lib/vehicles/plates/template_fill.rb +188 -0
- data/lib/vehicles/plates/templates.rb +162 -0
- data/lib/vehicles/plates.rb +122 -0
- data/lib/vehicles/providers/hosted_provider.rb +49 -58
- data/lib/vehicles/providers/local_provider.rb +4 -3
- data/lib/vehicles/validators/vehicle_make_validator.rb +3 -1
- data/lib/vehicles/validators/vehicle_model_validator.rb +1 -1
- data/lib/vehicles/version.rb +1 -1
- data/lib/vehicles.rb +53 -16
- data/rakelib/data_refresh.rake +109 -0
- data/rakelib/plates_refresh.rake +29 -0
- data/sig/vehicles.rbs +18 -0
- metadata +174 -2
|
@@ -0,0 +1,402 @@
|
|
|
1
|
+
# plates/us-mp.yml — Commonwealth of the Northern Mariana Islands (PRD-PLATES L2).
|
|
2
|
+
#
|
|
3
|
+
# THE CNMI'S VEHICLE CODE IS REACHABLE AND WELL-STRUCTURED: Title 9 of the
|
|
4
|
+
# Commonwealth Code, Division 2 ("Registration and Licenses"), served
|
|
5
|
+
# section-by-section as PDFs by cnmilaw.org, the Commonwealth Law Revision
|
|
6
|
+
# Commission's site. Chapter 2 establishes the Bureau of Motor Vehicles;
|
|
7
|
+
# §§ 2101-2120 carry registration; § 2106 carries display.
|
|
8
|
+
#
|
|
9
|
+
# THE FIND THAT MAKES THIS FILE WORTH HAVING is in an unexpected place. Title 9
|
|
10
|
+
# never describes the standard plate's design — but § 2116(c)(1), specifying
|
|
11
|
+
# where the word "VETERAN" goes on a VETERAN plate, does it by reference:
|
|
12
|
+
# "Below the line 'HAFA ADAI' will be the word 'VETERAN'...". That single
|
|
13
|
+
# subordinate clause is STATUTORY CONFIRMATION that the CNMI standard plate
|
|
14
|
+
# carries a HAFA ADAI legend, and it is the only instrument-grade design fact
|
|
15
|
+
# available for this jurisdiction. Reading the specialty section to source the
|
|
16
|
+
# standard plate is the kind of thing that only happens if you read the statute
|
|
17
|
+
# rather than the brochure.
|
|
18
|
+
#
|
|
19
|
+
# WHAT IS DELIBERATELY NOT HERE (PRD-PLATES §2.5): individual specialty DESIGNS.
|
|
20
|
+
jurisdiction: us-mp
|
|
21
|
+
authority:
|
|
22
|
+
name: CNMI Bureau of Motor Vehicles, Department of Public Safety
|
|
23
|
+
url: "https://www.cnmilaw.org/cmc.php"
|
|
24
|
+
binding: vehicle
|
|
25
|
+
statute_edition: >-
|
|
26
|
+
9 CMC (Vehicle Code), Division 2, as served section-by-section by
|
|
27
|
+
cnmilaw.org in this pass. The served text is current at least to PL 24-23 § 2
|
|
28
|
+
(Mar. 11, 2026), which amends § 2116 — so the edition read is a 2026 edition.
|
|
29
|
+
Each section carries a Commission source line and, from roughly PL 18 onward,
|
|
30
|
+
dated amendments; earlier public laws (PL 3-61, PL 5-39, PL 6-5, PL 14-16) are
|
|
31
|
+
cited by NUMBER ONLY in the Commission's text, with no date, which is why
|
|
32
|
+
several period claims below are upper bounds rather than enactment dates.
|
|
33
|
+
authority_url_note: >-
|
|
34
|
+
The Department of Public Safety's own site (dps.gov.mp) returned HTTP 401 on
|
|
35
|
+
every attempt and could not be used. The authority URL therefore points at the
|
|
36
|
+
Commonwealth Code, which is the primary-source home of every claim in this
|
|
37
|
+
file. Recorded as a dead end, not papered over.
|
|
38
|
+
|
|
39
|
+
# ---------------------------------------------------------------------------
|
|
40
|
+
# artwork_risk — required per jurisdiction by PRD-PLATES §4 / §7.1.
|
|
41
|
+
# ---------------------------------------------------------------------------
|
|
42
|
+
artwork_risk:
|
|
43
|
+
posture: unresearched-presumed-protected
|
|
44
|
+
basis: >-
|
|
45
|
+
The same two facts that govern Guam and the US Virgin Islands govern the
|
|
46
|
+
CNMI, and they point the same way. First, US federal copyright law APPLIES:
|
|
47
|
+
the US Copyright Office states that "US federal copyright law applies in the
|
|
48
|
+
US Virgin Islands, Guam, and the Northern Mariana Islands but not in American
|
|
49
|
+
Samoa". Second, NO Commons public-domain tag exists for the CNMI government —
|
|
50
|
+
Template:PD-CNMIGov returns 404 — and {{PD-USGov-Unincorporated}} is limited
|
|
51
|
+
to UNORGANIZED territories, which the CNMI (a Commonwealth in political union
|
|
52
|
+
with the United States, with its own constitution) is emphatically not.
|
|
53
|
+
conclusion: >-
|
|
54
|
+
Treat CNMI plate ARTWORK as presumptively protected. No CNMI statute,
|
|
55
|
+
executive order or Commonwealth court decision on government-work copyright
|
|
56
|
+
was located; that is a recorded gap. Note that 9 CMC § 2116(c)(1) itself
|
|
57
|
+
requires the CNMI FLAG to appear on veteran plates alongside the US flag, and
|
|
58
|
+
flags carry protection regimes independent of copyright — so even a
|
|
59
|
+
favourable copyright finding would not clear that element.
|
|
60
|
+
edicts: >-
|
|
61
|
+
Edicts of government are public domain at every level
|
|
62
|
+
({{PD-US-GovEdict}}), so 9 CMC — the source of every factual claim in this
|
|
63
|
+
file, including the HAFA ADAI legend — is unambiguously free to use.
|
|
64
|
+
emblem_rule: >-
|
|
65
|
+
PRD-PLATES §3's placeholder default applies to the CNMI flag, the latte stone
|
|
66
|
+
and the Commonwealth seal. Render `emblem: {present: true, rendered:
|
|
67
|
+
placeholder}`. The HAFA ADAI legend is TEXT, is stated in an edict, and is a
|
|
68
|
+
fact rather than artwork — it may be set in a substitute typeface without
|
|
69
|
+
touching the artwork question.
|
|
70
|
+
photograph_caution: >-
|
|
71
|
+
plateshack.com and worldlicenseplates.com carry no reusable licence and are
|
|
72
|
+
treated as all rights reserved; no image was copied.
|
|
73
|
+
sources:
|
|
74
|
+
- "https://commons.wikimedia.org/wiki/Commons:Copyright_rules_by_territory/United_States # the US Copyright Office position that federal copyright law applies in the Northern Mariana Islands; the US Territories tag list, which has no CNMI entry; and the UNORGANIZED-territories limit on {{PD-USGov-Unincorporated}}"
|
|
75
|
+
- "https://commons.wikimedia.org/wiki/Template:PD-CNMIGov # HTTP 404 — a measured negative: no Commons public-domain tag exists for the CNMI government"
|
|
76
|
+
- "https://cnmilaw.org/pdf/cmc_section/T9/2116.pdf # 9 CMC § 2116(c)(1), which requires the CNMI flag on the plate — an element outside copyright's reach either way"
|
|
77
|
+
|
|
78
|
+
# ---------------------------------------------------------------------------
|
|
79
|
+
# The US standards chain. NOTHING here quotes SAE J686 (paywalled, unpinned).
|
|
80
|
+
# ---------------------------------------------------------------------------
|
|
81
|
+
us_standards:
|
|
82
|
+
no_federal_mandate: true
|
|
83
|
+
cnmi_position: >-
|
|
84
|
+
9 CMC references no external standard. It does, however, legislate a
|
|
85
|
+
LEGIBILITY DISTANCE of its own — § 2106 requires the numbers to be "clearly
|
|
86
|
+
visible from a distance of 50 feet" — which is a Commonwealth requirement, not
|
|
87
|
+
an AAMVA one, and is a third of AAMVA's recommended 75 feet.
|
|
88
|
+
aamva_edition_3:
|
|
89
|
+
dimensions_delegated: "AAMVA §3.1 delegates dimensions and bolt holes to SAE J686, whose text is PAYWALLED and was NOT obtained. No J686 dimension is quoted here."
|
|
90
|
+
retroreflectivity: "AAMVA §3.3 recommends readability 'in both daylight and nighttime from distances of at least 75 feet'. The CNMI legislates 50 feet in § 2106 and says nothing about daylight or darkness — a materially weaker and differently-framed requirement, recorded as a real divergence"
|
|
91
|
+
character_layout: "AAMVA §2.2: characters at least 2.5 in high, spaced at least 0.25 in apart, stroke weight 0.2-0.4 in"
|
|
92
|
+
replacement_cycle: "AAMVA §1.1 recommends a 7-10 year replacement cycle. The CNMI legislates none; § 2107 expires registration annually and § 2106 requires the plate to show the YEAR, so validation rather than replacement is the mechanism"
|
|
93
|
+
source: "https://www.aamva.org/getmedia/646bcc8a-219b-47d8-b5cd-726240473163/License-Plate-Standard-Edition-3_September-2025-Update.pdf"
|
|
94
|
+
|
|
95
|
+
# ---------------------------------------------------------------------------
|
|
96
|
+
# Display rules — statutory, and the CNMI's are unusually well-motivated: the
|
|
97
|
+
# legislature published its reasoning when it tightened them in 2004.
|
|
98
|
+
# ---------------------------------------------------------------------------
|
|
99
|
+
display_rules:
|
|
100
|
+
default: >-
|
|
101
|
+
TWO plates, front and rear, AT THE FACTORY-DESIGNATED POSITION. § 2106,
|
|
102
|
+
verbatim: "Every owner whose vehicle or bicycle is registered shall display
|
|
103
|
+
the plates issued by the bureau showing the registration number AND YEAR. Each
|
|
104
|
+
of these plates shall be attached properly to the front and rear of the
|
|
105
|
+
vehicle or bicycle, AT THE FACTORY DESIGNATED POSITION. The plates shall be
|
|
106
|
+
kept clean and the numbers must be clearly visible from a distance of 50 feet.
|
|
107
|
+
No vehicle or bicycle owner may display an unofficial plate at the front or
|
|
108
|
+
rear of his vehicle or bicycle."
|
|
109
|
+
bicycles_included: >-
|
|
110
|
+
NOTE THE SWEEP, which is unusual and is not a transcription artefact: § 2106
|
|
111
|
+
applies to "vehicle OR BICYCLE" throughout, and § 2107 expires bicycle
|
|
112
|
+
registrations on the same annual cycle. The CNMI registers and plates
|
|
113
|
+
bicycles, and a plate dataset scoped to motor vehicles will silently miss a
|
|
114
|
+
real CNMI series.
|
|
115
|
+
legislative_reason: >-
|
|
116
|
+
RARE AND WORTH RECORDING. PL 14-18 (July 12, 2004), which produced the
|
|
117
|
+
current § 2106, published its findings: "The Legislature finds that many
|
|
118
|
+
vehicle owners do not display both license plates on their vehicle. Many
|
|
119
|
+
vehicle owners choose to only display the plates on the rear of the vehicles.
|
|
120
|
+
This has been problematic for the Department of Public Safety, creating
|
|
121
|
+
difficulty on identifying fleeing vehicles... The legislature further finds
|
|
122
|
+
that the bureau of Motor Vehicles issues TWO license plates upon registration
|
|
123
|
+
of a vehicle." So the two-plate ISSUANCE predates 2004; what 2004 added was
|
|
124
|
+
compulsory DISPLAY of both. That distinction dates the rule precisely and is
|
|
125
|
+
the reason this file's standard series starts at 2004 rather than earlier.
|
|
126
|
+
unofficial_plates_banned: "§ 2106's final sentence bans display of an UNOFFICIAL plate at either end — a novelty-plate prohibition in primary law"
|
|
127
|
+
expiration: >-
|
|
128
|
+
§ 2107: every vehicle and bicycle registration expires ANNUALLY at midnight
|
|
129
|
+
on the last day of the month designated by the bureau — a staggered scheme,
|
|
130
|
+
like Guam's. Ten business days' grace, then a $30 late fee to a DPS special
|
|
131
|
+
account for BMV supplies. Since PL 22-34 (Jan. 31, 2023) an owner of two or
|
|
132
|
+
more vehicles may align all their expiry months for $25 per vehicle.
|
|
133
|
+
seizure: "§ 1209 empowers the bureau to SEIZE documents and plates — the CNMI counterpart to Puerto Rico's Art. 2.13 'plates are Department property' rule"
|
|
134
|
+
sources:
|
|
135
|
+
- "https://cnmilaw.org/pdf/cmc_section/T9/2106.pdf # § 2106 (PL 3-61 § 1(§ 206), amended PL 14-18, July 12, 2004): registration number AND year on the plate, front and rear at the factory-designated position, clean and legible at 50 feet, no unofficial plates; and the published PL 14-18 findings quoted above"
|
|
136
|
+
- "https://cnmilaw.org/pdf/cmc_section/T9/2107.pdf # § 2107 (PL 3-61 § 1(§ 207), amended PL 19-18 Nov. 6 2015, repealed and reenacted PL 20-90 Feb. 18 2019, amended PL 22-34 Jan. 31 2023): annual staggered expiry, 10 business days' grace, $30 late fee to the DPS/BMV special account, the $25 multi-vehicle alignment option"
|
|
137
|
+
- "https://cnmilaw.org/pdf/cmc_section/T9/2105.pdf # § 2105 (PL 3-61 § 1(§ 205)): the registration card's contents and the carry-in-vehicle duty"
|
|
138
|
+
- "https://cnmilaw.org/pdf/cmc_section/T9/1209.pdf # § 1209: the bureau's power to seize documents and plates"
|
|
139
|
+
|
|
140
|
+
series:
|
|
141
|
+
|
|
142
|
+
# =========================================================================
|
|
143
|
+
# THE STANDARD-ISSUE SERIES.
|
|
144
|
+
# =========================================================================
|
|
145
|
+
- id: us-mp-standard
|
|
146
|
+
class: standard
|
|
147
|
+
categories: [car, van, truck, bus, motorcycle]
|
|
148
|
+
period: { start: 2004 }
|
|
149
|
+
period_evidence: statutory-amendment-date-upper-bound
|
|
150
|
+
matching: strict
|
|
151
|
+
format:
|
|
152
|
+
pattern: "LLL 999"
|
|
153
|
+
regex: '\A[A-Z]{3} ?\d{3}\z'
|
|
154
|
+
regex_statutory: '\A[A-Z0-9](?: ?[A-Z0-9])*\z'
|
|
155
|
+
charset:
|
|
156
|
+
notes: >-
|
|
157
|
+
9 CMC STATES NO SERIAL GRAMMAR. § 2106 requires the plate to show "the
|
|
158
|
+
registration number and year" and § 2105 requires the registration card
|
|
159
|
+
to bear "the registration number", and that is the whole of it — no
|
|
160
|
+
alphabet, no width, no exclusions. `regex_statutory` therefore carries no
|
|
161
|
+
width claim. The one place the Code DOES quantify a CNMI serial is
|
|
162
|
+
§ 2116(c)(2), for veteran plates, and that grammar is specced separately.
|
|
163
|
+
pattern_note: >-
|
|
164
|
+
THE THREE-LETTER / THREE-NUMERAL ARRANGEMENT IS NOT STATUTORY. It comes
|
|
165
|
+
from a Wikipedia LOCATOR, which reports ABC 123 continuously since 1989
|
|
166
|
+
across two base generations. `matching: strict` because the arrangement
|
|
167
|
+
lies INSIDE the (empty) statutory constraint and a match is a real claim
|
|
168
|
+
about this series; the outer bound is `regex_statutory`.
|
|
169
|
+
progression: "the locator reports sequential three-letter blocks (AAA 000 onward, with a reported jump to the AD-block around 2005); the specific block boundaries are NOT asserted here"
|
|
170
|
+
design:
|
|
171
|
+
plate: { w: 12, h: 6, unit: in, w_mm: 304.8, h_mm: 152.4 }
|
|
172
|
+
plate_dimension_note: "NOT in any CNMI instrument; 12 x 6 in is the reported North American convention and is marked as reported. § 2116(c) confirms only that veteran plates are 'the same standard size and shape as regular passenger vehicle license plates', which fixes a RELATION without fixing a value"
|
|
173
|
+
background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed-secondary }
|
|
174
|
+
colour_note: >-
|
|
175
|
+
THE BACKGROUND IS RECORDED, THE FOREGROUND DELIBERATELY IS NOT. The
|
|
176
|
+
locator describes "dark blue embossed serials on reflective white", and
|
|
177
|
+
while "reflective white" maps to #FFFFFF without invention, "dark blue"
|
|
178
|
+
does not map to any particular hex — assigning one would be manufacturing a
|
|
179
|
+
colour value out of an adjective. The foreground is therefore left absent
|
|
180
|
+
with its description recorded, per PRD-PLATES §9's folklore discipline.
|
|
181
|
+
foreground_description: "dark blue, embossed on the older base and surface-printed on the current one (locator-grade)"
|
|
182
|
+
legend_top: "COMMONWEALTH OF THE NORTHERN MARIANA ISLANDS"
|
|
183
|
+
legend_slogan: "HAFA ADAI"
|
|
184
|
+
legend_slogan_basis: >-
|
|
185
|
+
STATUTORY, AND BY A ROUTE WORTH RECORDING. 9 CMC § 2116(c)(1) specifies
|
|
186
|
+
the veteran plate by describing where its extra text goes relative to the
|
|
187
|
+
standard plate's: "BELOW THE LINE 'HAFA ADAI' will be the word 'VETERAN' or
|
|
188
|
+
'DISABLED VETERAN' (in black lettering) bordered on the left by the United
|
|
189
|
+
States Flag and on the right by the CNMI Flag." The statute therefore takes
|
|
190
|
+
the existence and position of a HAFA ADAI line on the CNMI plate as given.
|
|
191
|
+
This is the ONLY instrument-grade design fact available for the CNMI, and it
|
|
192
|
+
was found in the specialty section, not the registration one.
|
|
193
|
+
graphic: { present: true, rendered: placeholder, description: "not described in any CNMI instrument; no graphic claim is made" }
|
|
194
|
+
emblem: { present: true, rendered: placeholder }
|
|
195
|
+
mounting_holes_reported: "one round hole top right, horizontal slots in the other three corners since 1989 — the same arrangement reported for Hawaii and Guam; locator-grade"
|
|
196
|
+
band: { side: none }
|
|
197
|
+
rear_differs: false
|
|
198
|
+
validation: "§ 2106 requires the YEAR on the plate itself, not merely on a sticker — the CNMI is one of the jurisdictions where the year is a plate property in law. Photographs of CNMI plates carrying month-and-year expirations (July 2025, March 2020, June 2013, March 2009) corroborate a per-month validation device in practice"
|
|
199
|
+
region_encoding: none
|
|
200
|
+
sources:
|
|
201
|
+
- "https://cnmilaw.org/pdf/cmc_section/T9/2106.pdf # § 2106: the plate shows the registration number AND YEAR; front and rear at the factory-designated position; legible at 50 feet; no unofficial plates. Plus the PL 14-18 (July 12, 2004) legislative findings recording that BMV already issued TWO plates before 2004"
|
|
202
|
+
- "https://cnmilaw.org/pdf/cmc_section/T9/2116.pdf # § 2116(c)(1): 'Below the line HAFA ADAI...' — the statutory confirmation of the standard plate's slogan line; and § 2116(c) 'the same standard size and shape as regular passenger vehicle license plates'"
|
|
203
|
+
- "https://cnmilaw.org/pdf/cmc_section/T9/2101.pdf # § 2101: the registration application, the lawful-ownership and FMVSS-compliance evidence, and the § 2101(d) requirement that liability insurance expire in the same month as the registration"
|
|
204
|
+
- "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_the_Northern_Mariana_Islands # LOCATOR ONLY (PRD-PLATES §4): the ABC 123 arrangement since 1989, the reported 1989-2005 and 2005-present base generations and their serial blocks, the dark-blue-on-reflective-white description, the embossed-to-surface-printed change, and the mounting-hole arrangement"
|
|
205
|
+
- "http://www.plateshack.com/y2k/Northern_Marianas/cnmiy2k.html # CORROBORATION ONLY: dated photographs of CNMI plates with July 2025, March 2020, June 2013, March 2009, 2005, 2004, 2000 and 1999 expirations, which is how the per-month validation practice was confirmed. No licence statement; no image or text copied"
|
|
206
|
+
- "http://www.worldlicenseplates.com/world/PA_NMAR.html # CORROBORATION + GAP-FINDER: an independent CNMI page noting historical variants — plates 'with 19 embossed after the registration', the embossed 19 removed for five-digit registrations, and one plate 'Originally a government plate, repurposed and reissued as general issue DUE TO SHORTAGE'. The shortage note is the useful one: it is direct evidence that CNMI government and general serial namespaces are not hermetically separated"
|
|
207
|
+
notes: >-
|
|
208
|
+
CNMI STANDARD ISSUE. THE ID IS DELIBERATELY UNDATED and the period is an
|
|
209
|
+
UPPER BOUND: `start: 2004` is the enactment of PL 14-18, whose published
|
|
210
|
+
findings record that BMV was ALREADY issuing two plates before that date, so
|
|
211
|
+
the true start of the current arrangement is earlier and the locator's 1989
|
|
212
|
+
figure is left in the locator where it belongs. The reported 2005 base change
|
|
213
|
+
is NOT minted as a boundary — it is a surface-printing-versus-embossing change
|
|
214
|
+
with no format consequence and no primary behind it, exactly the kind of
|
|
215
|
+
folklore boundary PRD-PLATES §9 warns against dating. THE ENTRY'S REAL VALUE
|
|
216
|
+
is the HAFA ADAI legend sourced to an edict, and the worldlicenseplates
|
|
217
|
+
shortage finding, which tells any future decode effort that CNMI government
|
|
218
|
+
plates have at least once been recycled into general issue.
|
|
219
|
+
|
|
220
|
+
# =========================================================================
|
|
221
|
+
# CORE DISTINCT CLASSES.
|
|
222
|
+
# =========================================================================
|
|
223
|
+
- id: us-mp-government
|
|
224
|
+
class: government
|
|
225
|
+
categories: [car, van, truck, bus]
|
|
226
|
+
period: { start: 2026 }
|
|
227
|
+
period_evidence: instrument-in-force-upper-bound
|
|
228
|
+
matching: recall-only
|
|
229
|
+
format:
|
|
230
|
+
pattern: "LLL 999"
|
|
231
|
+
regex: '\A[A-Z0-9](?: ?[A-Z0-9])*\z'
|
|
232
|
+
charset: { notes: "no grammar stated; § 2109 addresses only what a government plate need NOT display" }
|
|
233
|
+
pattern_note: "ILLUSTRATIVE PATTERN, CATCH-ALL REGEX. `matching: recall-only` — a match is a shape hit and never a claim that the string is a valid CNMI government plate."
|
|
234
|
+
design:
|
|
235
|
+
plate: { note: "not stated" }
|
|
236
|
+
emblem: { present: true, rendered: placeholder }
|
|
237
|
+
validity: >-
|
|
238
|
+
PERMANENT. § 2109(a)(2): the registration and registration card for a
|
|
239
|
+
Commonwealth-owned vehicle "need not be renewed annually but remains valid
|
|
240
|
+
until the certificate of ownership for the vehicle is suspended, revoked or
|
|
241
|
+
canceled by the bureau for cause or upon transfer of any interest in the
|
|
242
|
+
certificate of ownership." On a change of ownership the vehicle is
|
|
243
|
+
re-registered as a private vehicle and the special plates are surrendered.
|
|
244
|
+
§ 2109(a)(3) reserves the bureau's power to suspend, cancel, revoke or renew
|
|
245
|
+
such a registration when reissue is advisable.
|
|
246
|
+
scope: "§ 2109(b): 'Each vehicle purchased from revenue of the Commonwealth government, INCLUDING ITS GOVERNMENT CORPORATIONS, AGENCIES, BOARDS OR COMMISSIONS, shall display a government license plate' — the test is the source of the purchase funds, not the identity of the registered owner"
|
|
247
|
+
textual_anomaly: >-
|
|
248
|
+
RECORDED, NOT SILENTLY CORRECTED. § 2109(a)(1) as served reads: "A license
|
|
249
|
+
plate issued for any vehicle while publicly owned NEED NOT DISPLAY A
|
|
250
|
+
DISTINGUISHING SYMBOL, WORD OR LETTER." Its evident model — Guam's 16 GCA
|
|
251
|
+
§ 7136(a), which shares the provision's structure and much of its wording —
|
|
252
|
+
reads the other way round: a government plate need not display THE YEAR
|
|
253
|
+
NUMBER, "but SHALL display a distinguishing symbol, word or letter". The CNMI
|
|
254
|
+
text as compiled therefore appears to have lost the year-number exemption and
|
|
255
|
+
inverted the distinguishing-mark duty. This is flagged as a probable
|
|
256
|
+
compilation or drafting defect and is NOT relied upon in either direction;
|
|
257
|
+
PRD-PLATES §5.3 says record disagreements rather than average them, and the
|
|
258
|
+
same discipline applies to a text that disagrees with itself.
|
|
259
|
+
region_encoding: none
|
|
260
|
+
sources:
|
|
261
|
+
- "https://cnmilaw.org/pdf/cmc_section/T9/2109.pdf # § 2109 (PL 3-61 § 1(§ 209), amended PL 6-5 § 303): the government-plate provisions in full, including the anomalous (a)(1) quoted above, permanent non-renewing registration, surrender and re-registration on transfer, the bureau's reissue power, and the (b) purchased-from-Commonwealth-revenue test"
|
|
262
|
+
- "https://col.guamcourts.gov/sites/default/files/16gc007_0.pdf # Guam 16 GCA § 7136(a), cited ONLY as the comparator that makes the CNMI text's anomaly visible — the two provisions are structurally parallel and read oppositely on the same point"
|
|
263
|
+
- "http://www.worldlicenseplates.com/world/PA_NMAR.html # CORROBORATION: a photographed 1978-series CNMI GOVERNMENT VEHICLE plate, and the note that a government plate was once repurposed and reissued as general issue during a shortage"
|
|
264
|
+
notes: >-
|
|
265
|
+
CNMI GOVERNMENT PLATES. THE PERMANENT-REGISTRATION FACT is the one to carry
|
|
266
|
+
into the parse layer: a CNMI government plate never expires, so the year that
|
|
267
|
+
§ 2106 requires on every other plate cannot be relied on here, and
|
|
268
|
+
era-inference from a validation device silently fails on this series.
|
|
269
|
+
`period: {start: 2026}` is the year the Commonwealth Code was read and is an
|
|
270
|
+
upper bound; § 2109's own source line cites PL 3-61 and PL 6-5, for neither of
|
|
271
|
+
which the Commission's text supplies a date, so no earlier year could be
|
|
272
|
+
claimed without inventing it.
|
|
273
|
+
|
|
274
|
+
- id: us-mp-veteran
|
|
275
|
+
class: specialty
|
|
276
|
+
categories: [car, motorcycle]
|
|
277
|
+
period: { start: 2013 }
|
|
278
|
+
period_evidence: statutory-amendment-date-upper-bound
|
|
279
|
+
matching: strict
|
|
280
|
+
format:
|
|
281
|
+
pattern: "L999"
|
|
282
|
+
regex: '\A[A-Z]{1,2}\d{3}\z'
|
|
283
|
+
charset:
|
|
284
|
+
notes: >-
|
|
285
|
+
THE ONLY FULLY-STATED SERIAL GRAMMAR IN CNMI LAW, and it is stated by
|
|
286
|
+
example. § 2116(c)(2), verbatim: "On the next line, centered on the
|
|
287
|
+
license plate, will be the license plate number (IN BLUE LETTERING) IN
|
|
288
|
+
ALPHA NUMERIC FORMAT DESIGNATING BRANCH OF SERVICE AND NUMERICAL
|
|
289
|
+
SEQUENCE. For example, A001 (Army), NG045 (National Guard), or R610
|
|
290
|
+
(Reserves)." Three worked examples give a one- or two-letter branch code
|
|
291
|
+
followed by a three-digit sequence, which is exactly what the regex
|
|
292
|
+
encodes. The branch codes themselves are NOT enumerated in the statute —
|
|
293
|
+
A, NG and R are illustrations, not a closed set — so no decode table is
|
|
294
|
+
asserted.
|
|
295
|
+
progression: "numerical sequence within each branch code"
|
|
296
|
+
design:
|
|
297
|
+
plate: { note: "§ 2116(c): 'the same standard size and shape as regular passenger vehicle license plates' — a stated RELATION to the standard plate rather than an absolute value" }
|
|
298
|
+
legend_slogan: "HAFA ADAI"
|
|
299
|
+
legend_class: "§ 2116(c)(1): below the HAFA ADAI line, the word 'VETERAN' or 'DISABLED VETERAN' in BLACK lettering, bordered on the left by the United States Flag and on the right by the CNMI Flag"
|
|
300
|
+
foreground_class_line: "black lettering for the VETERAN / DISABLED VETERAN line (§ 2116(c)(1)); BLUE lettering for the serial (§ 2116(c)(2)) — the CNMI legislates two different ink colours on one plate, and names neither in a specifiable value"
|
|
301
|
+
accessibility_symbol: "§ 2116(c)(2): for a qualified person with a disability, the veteran plate additionally displays the International Symbol of Accessibility 'in the same size as the letters and numbers on the license plate'"
|
|
302
|
+
emblem: { present: true, rendered: placeholder }
|
|
303
|
+
eligibility: >-
|
|
304
|
+
§ 2116(a): "veteran" means a person who served on active duty or in a
|
|
305
|
+
reserve component of any branch of the US Armed Forces and was discharged or
|
|
306
|
+
released under conditions other than dishonorable; "disabled veteran" adds
|
|
307
|
+
certification of at least 10% service-related disability. § 2116(b) accepts a
|
|
308
|
+
DD214, or failing that a certification from the Military and Veterans Affairs
|
|
309
|
+
Office or a VA-issued Veteran Identification Card.
|
|
310
|
+
fee: >-
|
|
311
|
+
§ 2116(d): 25% LESS than the fee for a similar plate for the same class of
|
|
312
|
+
vehicle; entirely FREE for a veteran rated by the VA at 100% permanent and
|
|
313
|
+
total disability, on production of the Regional VA Office decision letter.
|
|
314
|
+
issuance_rules: >-
|
|
315
|
+
§ 2116(e): issued only to the registered owner or lessee; expressly NOT
|
|
316
|
+
limited to one vehicle per veteran; not transferable to any other person,
|
|
317
|
+
except that the Commissioner "shall allow the SURVIVOR of the qualified
|
|
318
|
+
person, upon request, TO RETAIN THE FRONT LICENSE PLATE AS A MEMORIAL" —
|
|
319
|
+
which is a genuinely distinctive statutory provision, and one that only makes
|
|
320
|
+
sense in a two-plate jurisdiction. Assigned to non-commercial passenger motor
|
|
321
|
+
vehicles and non-commercial MOTORCYCLES.
|
|
322
|
+
region_encoding: none
|
|
323
|
+
sources:
|
|
324
|
+
- "https://cnmilaw.org/pdf/cmc_section/T9/2116.pdf # § 2116 (PL 14-16 § 3; (d) amended PL 18-22 § 2, Oct. 8 2013; (g)-(h) enacted PL 19-26 § 2, Dec. 14 2015; amended PL 20-37 § 2, Jan. 18 2018; (a) and (b)(1) amended PL 24-23 § 2, Mar. 11 2026): the veteran/disabled-veteran definitions and proofs, the HAFA ADAI-relative layout, the two ink colours, the branch-code-plus-sequence serial with its three worked examples, the accessibility symbol, the 25%/100% fee rules, the multi-vehicle and non-transferability rules, and the survivor memorial provision"
|
|
325
|
+
notes: >-
|
|
326
|
+
CNMI VETERAN AND DISABLED VETERAN PLATES. SPECCED SEPARATELY FROM THE
|
|
327
|
+
SPECIALTY INDEX, and deliberately so: PRD-PLATES §2.5 excludes individual
|
|
328
|
+
specialty DESIGNS from L2, but this series carries a FORMAT — a real,
|
|
329
|
+
statutory, alpha-numeric grammar with worked examples — and a format is
|
|
330
|
+
exactly what the dataset exists to hold. PERIOD CAVEAT, STATED PLAINLY:
|
|
331
|
+
§ 2116 was enacted by PL 14-16, for which the Commission's source line gives
|
|
332
|
+
NO DATE. The earliest DATED instrument in its amendment chain is PL 18-22 § 2
|
|
333
|
+
(Oct. 8, 2013), so 2013 is an UPPER BOUND on the true start, not the start.
|
|
334
|
+
CLASS CAVEAT: recorded as `specialty` because _meta/classes.yml's `military`
|
|
335
|
+
value means armed-forces REGISTRATION SYSTEMS, which this is not — it is a
|
|
336
|
+
civilian plate recognising prior service.
|
|
337
|
+
|
|
338
|
+
# =========================================================================
|
|
339
|
+
# SPECIALTY — INDEX ONLY, per PRD-PLATES §2.5.
|
|
340
|
+
# =========================================================================
|
|
341
|
+
- id: us-mp-specialty-index
|
|
342
|
+
class: specialty
|
|
343
|
+
categories: [car, van, truck, motorcycle]
|
|
344
|
+
period: { start: 2015 }
|
|
345
|
+
period_evidence: statutory-enactment-date
|
|
346
|
+
matching: recall-only
|
|
347
|
+
format:
|
|
348
|
+
pattern: "LLL 999"
|
|
349
|
+
regex: '\A[A-Z0-9](?: ?[A-Z0-9])*\z'
|
|
350
|
+
charset: { notes: "the one CNMI specialty grammar that IS stated — the veteran branch-code format — is specced at us-mp-veteran; nothing is stated for the rest" }
|
|
351
|
+
pattern_note: "illustrative only — this is an INDEX entry, not a spec"
|
|
352
|
+
design:
|
|
353
|
+
plate: { note: "one design per programme; the designs themselves are L4 scope (PRD-PLATES §2.5) and none is described here" }
|
|
354
|
+
emblem: { present: true, rendered: placeholder }
|
|
355
|
+
program_index:
|
|
356
|
+
count_statutory: 3
|
|
357
|
+
count_basis: >-
|
|
358
|
+
THREE PROGRAMMES ARE CREATED BY 9 CMC ITSELF, all of them inside a single
|
|
359
|
+
section. This is the smallest statutory specialty catalogue found anywhere
|
|
360
|
+
in the US pass, and its smallness is a finding rather than a gap: the CNMI
|
|
361
|
+
legislature has simply not built the sprawling optional-plate market that
|
|
362
|
+
Florida (over 100 programmes) or Texas (506) have.
|
|
363
|
+
statutory_programs:
|
|
364
|
+
- "§ 2116(a)-(f) — VETERAN plates (specced separately as us-mp-veteran because its serial grammar is statutory)"
|
|
365
|
+
- "§ 2116(a)-(f) — DISABLED VETERAN plates, distinguished by the class legend and by the addition of the International Symbol of Accessibility for a qualified person with a disability"
|
|
366
|
+
- "§ 2116(g)-(h) — SPECIAL GOLD STAR plates, enacted by PL 19-26 § 2 (Dec. 14, 2015): issued by BMV on application, type and style set by the Director of BMV together with the Office of Veterans Affairs, 'except that A GOLD STAR SHALL APPEAR ON ONE SIDE OF THE PLATE'; reissued to the original holder; eligibility limited to bereaved parents, stepparents, adoptive and foster parents in loco parentis, children, stepchildren and children through adoption; the fee may not exceed that for a similar plate of the same vehicle class"
|
|
367
|
+
cross_jurisdiction_note: >-
|
|
368
|
+
THE GOLD STAR PROVISION IS NEARLY WORD-FOR-WORD GUAM'S. Compare 16 GCA
|
|
369
|
+
§ 7120.3 ("The type and style of the gold star license plates shall be
|
|
370
|
+
determined by the Director ... except that a gold star shall appear on one
|
|
371
|
+
(1) side of the license plate") with 9 CMC § 2116(g). Guam enacted its
|
|
372
|
+
version in P.L. 30-062 (Nov. 27, 2009); the CNMI enacted its version in
|
|
373
|
+
PL 19-26 (Dec. 14, 2015), six years later. This is a documented instance of
|
|
374
|
+
one territory's plate statute being copied by another, and it is worth
|
|
375
|
+
recording because it means the two jurisdictions' gold-star series can be
|
|
376
|
+
expected to behave identically — and because it is a warning that apparent
|
|
377
|
+
independent corroboration between Guam and CNMI sources may be common
|
|
378
|
+
ancestry rather than agreement.
|
|
379
|
+
official_list_url: "https://www.cnmilaw.org/cmc.php"
|
|
380
|
+
official_list_note: >-
|
|
381
|
+
THE STATUTE IS THE CATALOGUE. The Department of Public Safety's site
|
|
382
|
+
returned HTTP 401 throughout and BMV publishes no reachable specialty
|
|
383
|
+
gallery, so 9 CMC § 2116 is the only enumeration available. Whether the
|
|
384
|
+
CNMI Administrative Code carries BMV regulations adding further programmes
|
|
385
|
+
was NOT determined (recorded gap): the NMIAC is served by title at
|
|
386
|
+
cnmilaw.org but no motor-vehicle title was identified in this pass.
|
|
387
|
+
churn_note: "no discontinuation duty analogous to Florida's § 320.08056(8)(a) appears in 9 CMC; CNMI programmes are added by public law and are not automatically retired"
|
|
388
|
+
region_encoding: none
|
|
389
|
+
sources:
|
|
390
|
+
- "https://cnmilaw.org/pdf/cmc_section/T9/2116.pdf # § 2116 in full — the veteran, disabled veteran and gold star programmes, with their per-programme public-law enactment and amendment dates"
|
|
391
|
+
- "https://www.cnmilaw.org/cmc.php # the Commonwealth Code index served by the CNMI Law Revision Commission — the section-by-section source for all of Title 9 used here, and the only reachable official enumeration"
|
|
392
|
+
- "https://col.guamcourts.gov/sites/default/files/16gc007_0.pdf # Guam 16 GCA § 7120.3, cited as the evident source text for the CNMI gold-star provision — the common-ancestry finding recorded above"
|
|
393
|
+
notes: >-
|
|
394
|
+
THE SPECIALTY PROGRAM INDEX — one entry standing for the whole programme, per
|
|
395
|
+
PRD-PLATES §2.5. TWO THINGS WORTH CARRYING FORWARD. First, THREE PROGRAMMES
|
|
396
|
+
IS THE WHOLE STATUTORY CATALOGUE, which makes the CNMI the cleanest specialty
|
|
397
|
+
index in the dataset and a useful counterexample to the assumption that every
|
|
398
|
+
US jurisdiction runs a sprawling optional-plate market. Second, THE
|
|
399
|
+
GOLD-STAR TEXT IS BORROWED FROM GUAM, which is a methodological finding as
|
|
400
|
+
much as a factual one: two territory statutes agreeing is not two
|
|
401
|
+
independent sources, and any verifier treating Guam and CNMI as
|
|
402
|
+
cross-corroborating should check for shared drafting first.
|