vehicles 0.6.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.
Files changed (186) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop_todo.yml +164 -0
  3. data/CHANGELOG.md +274 -0
  4. data/README.md +55 -10
  5. data/data/PROVENANCE-vehicles.md +12 -0
  6. data/data/plates/PROVENANCE.md +5 -4
  7. data/data/plates/_decode/at-districts.yml +287 -0
  8. data/data/plates/_decode/ch-cantons.yml +110 -0
  9. data/data/plates/_decode/cn-issuing-offices.yml +463 -0
  10. data/data/plates/_decode/cn-provinces.yml +614 -0
  11. data/data/plates/_decode/cz-kraj.yml +159 -0
  12. data/data/plates/_decode/dk-serial-blocks.yml +327 -0
  13. data/data/plates/_decode/fr-departements.yml +191 -0
  14. data/data/plates/_decode/gb-age-identifiers.yml +170 -0
  15. data/data/plates/_decode/gb-memory-tags.yml +202 -0
  16. data/data/plates/_decode/gr-prefectures.yml +1408 -0
  17. data/data/plates/_decode/hr-cities.yml +315 -0
  18. data/data/plates/_decode/ie-counties.yml +227 -0
  19. data/data/plates/_decode/in-state-codes.yml +169 -0
  20. data/data/plates/_decode/is-districts-1938.yml +116 -0
  21. data/data/plates/_decode/it-provinces.yml +348 -0
  22. data/data/plates/_decode/jp-office-marks.yml +960 -0
  23. data/data/plates/_decode/jp-use-marks.yml +205 -0
  24. data/data/plates/_decode/kr-authority-marks.yml +146 -0
  25. data/data/plates/_decode/kr-use-syllables.yml +194 -0
  26. data/data/plates/_decode/lu-series-order.yml +638 -0
  27. data/data/plates/_decode/mx-entity-series.yml +380 -0
  28. data/data/plates/_decode/my-index-marks.yml +271 -0
  29. data/data/plates/_decode/no-counties-1913.yml +148 -0
  30. data/data/plates/_decode/no-districts.yml +901 -0
  31. data/data/plates/_decode/pl-powiats.yml +567 -0
  32. data/data/plates/_decode/pt-trailer-services.yml +96 -0
  33. data/data/plates/_decode/ro-counties.yml +213 -0
  34. data/data/plates/_decode/se-diplomatic.yml +220 -0
  35. data/data/plates/_decode/si-regions.yml +123 -0
  36. data/data/plates/_decode/sk-districts.yml +314 -0
  37. data/data/plates/_decode/th-registration-elements.yml +208 -0
  38. data/data/plates/_decode/ua-regions.yml +393 -0
  39. data/data/plates/_decode/za-licence-marks.yml +215 -0
  40. data/data/plates/_meta/classes.yml +1 -0
  41. data/data/plates/_meta/separators.yml +102 -0
  42. data/data/plates/ad.yml +961 -0
  43. data/data/plates/ar.yml +762 -0
  44. data/data/plates/at.yml +1424 -0
  45. data/data/plates/au-act.yml +472 -0
  46. data/data/plates/au-nsw.yml +282 -0
  47. data/data/plates/au-nt.yml +431 -0
  48. data/data/plates/au-qld.yml +272 -0
  49. data/data/plates/au-sa.yml +248 -0
  50. data/data/plates/au-tas.yml +302 -0
  51. data/data/plates/au-vic.yml +215 -0
  52. data/data/plates/au-wa.yml +309 -0
  53. data/data/plates/be.yml +1840 -0
  54. data/data/plates/br.yml +1152 -0
  55. data/data/plates/ca-ab.yml +430 -0
  56. data/data/plates/ca-bc.yml +697 -0
  57. data/data/plates/ca-mb.yml +499 -0
  58. data/data/plates/ca-nb.yml +537 -0
  59. data/data/plates/ca-nl.yml +743 -0
  60. data/data/plates/ca-ns.yml +808 -0
  61. data/data/plates/ca-nt.yml +610 -0
  62. data/data/plates/ca-nu.yml +280 -0
  63. data/data/plates/ca-on.yml +881 -0
  64. data/data/plates/ca-pe.yml +592 -0
  65. data/data/plates/ca-qc.yml +1036 -0
  66. data/data/plates/ca-sk.yml +256 -0
  67. data/data/plates/ca-yt.yml +656 -0
  68. data/data/plates/ch.yml +1273 -0
  69. data/data/plates/cn.yml +1431 -0
  70. data/data/plates/cy.yml +688 -0
  71. data/data/plates/cz.yml +1179 -0
  72. data/data/plates/de.yml +553 -118
  73. data/data/plates/dk.yml +1647 -0
  74. data/data/plates/ee.yml +1275 -0
  75. data/data/plates/es.yml +228 -32
  76. data/data/plates/fi.yml +1271 -0
  77. data/data/plates/fr.yml +1265 -0
  78. data/data/plates/gb.yml +1188 -0
  79. data/data/plates/gr.yml +721 -0
  80. data/data/plates/hr.yml +860 -0
  81. data/data/plates/hu.yml +959 -0
  82. data/data/plates/ie.yml +775 -0
  83. data/data/plates/in.yml +1172 -0
  84. data/data/plates/is.yml +667 -0
  85. data/data/plates/it.yml +1317 -0
  86. data/data/plates/jp.yml +3650 -0
  87. data/data/plates/kr.yml +1375 -0
  88. data/data/plates/li.yml +1010 -0
  89. data/data/plates/lt.yml +879 -0
  90. data/data/plates/lu.yml +842 -0
  91. data/data/plates/lv.yml +924 -0
  92. data/data/plates/mc.yml +1024 -0
  93. data/data/plates/mt.yml +854 -0
  94. data/data/plates/mx.yml +1372 -0
  95. data/data/plates/my.yml +685 -0
  96. data/data/plates/nl.yml +44 -0
  97. data/data/plates/no.yml +1018 -0
  98. data/data/plates/nz.yml +1699 -0
  99. data/data/plates/pl.yml +1296 -0
  100. data/data/plates/pt.yml +847 -0
  101. data/data/plates/ro.yml +785 -0
  102. data/data/plates/se.yml +1091 -0
  103. data/data/plates/si.yml +1105 -0
  104. data/data/plates/sk.yml +1439 -0
  105. data/data/plates/sm.yml +1119 -0
  106. data/data/plates/th.yml +1150 -0
  107. data/data/plates/ua.yml +1672 -0
  108. data/data/plates/us-ak.yml +763 -0
  109. data/data/plates/us-al.yml +457 -0
  110. data/data/plates/us-ar.yml +427 -0
  111. data/data/plates/us-as.yml +454 -0
  112. data/data/plates/us-az.yml +430 -0
  113. data/data/plates/us-ca.yml +892 -0
  114. data/data/plates/us-co.yml +452 -0
  115. data/data/plates/us-ct.yml +427 -0
  116. data/data/plates/us-dc.yml +614 -0
  117. data/data/plates/us-de.yml +551 -0
  118. data/data/plates/us-fl.yml +319 -96
  119. data/data/plates/us-ga.yml +644 -0
  120. data/data/plates/us-gu.yml +658 -0
  121. data/data/plates/us-hi.yml +585 -0
  122. data/data/plates/us-ia.yml +438 -0
  123. data/data/plates/us-id.yml +531 -0
  124. data/data/plates/us-il.yml +516 -0
  125. data/data/plates/us-in.yml +324 -0
  126. data/data/plates/us-ks.yml +351 -0
  127. data/data/plates/us-ky.yml +770 -0
  128. data/data/plates/us-la.yml +568 -0
  129. data/data/plates/us-ma.yml +379 -0
  130. data/data/plates/us-md.yml +536 -0
  131. data/data/plates/us-me.yml +445 -0
  132. data/data/plates/us-mi.yml +408 -0
  133. data/data/plates/us-mn.yml +411 -0
  134. data/data/plates/us-mo.yml +356 -0
  135. data/data/plates/us-mp.yml +402 -0
  136. data/data/plates/us-ms.yml +432 -0
  137. data/data/plates/us-mt.yml +619 -0
  138. data/data/plates/us-nc.yml +602 -0
  139. data/data/plates/us-nd.yml +419 -0
  140. data/data/plates/us-ne.yml +483 -0
  141. data/data/plates/us-nh.yml +394 -0
  142. data/data/plates/us-nj.yml +547 -0
  143. data/data/plates/us-nm.yml +574 -0
  144. data/data/plates/us-nv.yml +655 -0
  145. data/data/plates/us-ny.yml +592 -0
  146. data/data/plates/us-oh.yml +404 -0
  147. data/data/plates/us-ok.yml +513 -0
  148. data/data/plates/us-or.yml +392 -0
  149. data/data/plates/us-pa.yml +506 -0
  150. data/data/plates/us-pr.yml +507 -0
  151. data/data/plates/us-ri.yml +445 -0
  152. data/data/plates/us-sc.yml +605 -0
  153. data/data/plates/us-sd.yml +428 -0
  154. data/data/plates/us-tn.yml +471 -0
  155. data/data/plates/us-tx.yml +535 -0
  156. data/data/plates/us-ut.yml +384 -0
  157. data/data/plates/us-va.yml +567 -0
  158. data/data/plates/us-vi.yml +489 -0
  159. data/data/plates/us-vt.yml +458 -0
  160. data/data/plates/us-wa.yml +484 -0
  161. data/data/plates/us-wi.yml +509 -0
  162. data/data/plates/us-wv.yml +446 -0
  163. data/data/plates/us-wy.yml +523 -0
  164. data/data/plates/va.yml +604 -0
  165. data/data/plates/za.yml +1141 -0
  166. data/data/vehicles.json +160653 -105090
  167. data/lib/vehicles/configuration.rb +17 -3
  168. data/lib/vehicles/dataset.rb +73 -18
  169. data/lib/vehicles/fuzzy.rb +115 -0
  170. data/lib/vehicles/http.rb +48 -0
  171. data/lib/vehicles/make.rb +36 -6
  172. data/lib/vehicles/mcp_server.rb +5 -5
  173. data/lib/vehicles/model.rb +21 -2
  174. data/lib/vehicles/plates/series.rb +172 -18
  175. data/lib/vehicles/plates/template_fill.rb +188 -0
  176. data/lib/vehicles/plates/templates.rb +162 -0
  177. data/lib/vehicles/plates.rb +12 -0
  178. data/lib/vehicles/providers/hosted_provider.rb +28 -55
  179. data/lib/vehicles/validators/vehicle_make_validator.rb +3 -1
  180. data/lib/vehicles/validators/vehicle_model_validator.rb +1 -1
  181. data/lib/vehicles/version.rb +1 -1
  182. data/lib/vehicles.rb +32 -16
  183. data/rakelib/data_refresh.rake +109 -0
  184. data/rakelib/plates_refresh.rake +29 -0
  185. data/sig/vehicles.rbs +18 -0
  186. metadata +164 -2
@@ -0,0 +1,432 @@
1
+ # plates/us-ms.yml — Mississippi (PRD-PLATES gate L2, group southeast-b).
2
+ #
3
+ # WHY MISSISSIPPI IS THE MOST PERIOD-DISCIPLINED STATE IN THIS GROUP, and maybe
4
+ # in the dataset: Mississippi does not have a redesign HABIT, it has a redesign
5
+ # STATUTE, and its revenue department labels each base with the years it covers.
6
+ # Miss. Code Ann. § 27-19-31(1) authorises a five-year tag, and the Department of
7
+ # Revenue's own plate page calls the current issue the "2024-2029 Series" in
8
+ # terms. Everywhere else in this dataset a period boundary has to be assembled
9
+ # from press releases and collector tables; here the issuing agency states the
10
+ # window itself. That is a genuinely rare artefact and it is the spine of this
11
+ # file.
12
+ #
13
+ # SOURCING RULE APPLIED HERE, AND ITS LIMIT: PRD-PLATES §4 prefers the statute
14
+ # over the agency page. The Mississippi Code of 1972 is published exclusively
15
+ # through a LexisNexis portal that serves a JavaScript shell, and Justia,
16
+ # FindLaw and Casetext all refuse a plain fetch (403/410). But Mississippi's DOR
17
+ # QUOTES § 27-19-31(1) verbatim on its own plate page, so the operative statutory
18
+ # sentence in this file is a real statutory quotation carried by the agency
19
+ # charged with executing it — second-best, honestly labelled, and far better than
20
+ # a paraphrase. The rest of Chapter 27-19 is a recorded gap.
21
+ jurisdiction: us-ms
22
+ authority:
23
+ name: Mississippi Department of Revenue, Motor Vehicle Services (Vehicle Licensing Division)
24
+ url: "https://www.dor.ms.gov/motor-vehicle/available-license-plates"
25
+ binding: vehicle
26
+ statute_edition: >-
27
+ NOT DIRECTLY OBTAINED. The Mississippi Code of 1972, Annotated is served through
28
+ a LexisNexis portal (lexisnexis.com/hottopics/mscode) that returns a JavaScript
29
+ redirect shell; law.justia.com and codes.findlaw.com return 403 and casetext.com
30
+ returns 410. § 27-19-31(1) appears in this file as VERBATIM TEXT QUOTED BY THE
31
+ MISSISSIPPI DEPARTMENT OF REVENUE on its own Available License Plates page, which
32
+ is the agency that administers it. Public.Resource.Org carries scanned/XML
33
+ Mississippi Code editions from 2010 and 2013 that were NOT used, because a
34
+ thirteen-year-old edition is worse evidence for a current five-year cycle than
35
+ the administering agency's own current quotation.
36
+
37
+ # ---------------------------------------------------------------------------
38
+ # artwork_risk — required per jurisdiction by PRD-PLATES §4.
39
+ # ---------------------------------------------------------------------------
40
+ artwork_risk:
41
+ posture: asserted-weak
42
+ basis: >-
43
+ Mississippi is not in the pinned dossier's per-state table in either column,
44
+ so it starts from the dossier's default rule — 17 U.S.C. §105 does not reach
45
+ the states, therefore a state plate design is copyrighted unless the state
46
+ says otherwise — and no Mississippi exception was found. No Commons
47
+ {{PD-MSGov}} tag was located. What WAS found, and is recorded because it is
48
+ the only direct evidence either way: every page of the Mississippi Department
49
+ of Revenue site, including the plate pages this file cites, carries the notice
50
+ "© Copyright 2026 - State of Mississippi". That is an affirmative copyright
51
+ assertion by the State over the material the plate designs are published in.
52
+ It is deliberately graded ASSERTED-WEAK rather than adverse: a site-wide
53
+ footer is a claim over the website compilation, not a considered assertion
54
+ over the plate design itself, and it is a much thinner artefact than Arizona's
55
+ express statement that its works "are not in the public domain". But it points
56
+ one way, and this dataset does not round a copyright notice down to nothing.
57
+ authorship_complication: >-
58
+ A wrinkle no other state in this group has, and one a clearance would have to
59
+ resolve rather than assume away: the current standard base was, per a
60
+ contemporaneous news report, "Created by Leah Eaton of Starkville,
61
+ Mississippi" — a named private individual, not an anonymous agency draughtsman.
62
+ Whatever the State's posture toward its own works, an individually authored
63
+ design raises the separate question of what was assigned and on what terms.
64
+ Unresearched, and flagged rather than waved through.
65
+ emblem_rule: >-
66
+ PRD-PLATES §3 placeholder default applies. Two emblems are in scope and they
67
+ are different problems. The MAGNOLIA BLOSSOM on the current base renders as
68
+ `emblem: {present: true, rendered: placeholder}`. The STATE SEAL on the
69
+ 2019-2023 base is worse: state seals carry protection INDEPENDENT of copyright
70
+ under seal-misuse statutes, that regime is unresearched for Mississippi, and
71
+ the Mississippi seal specifically was the subject of controversy and litigation
72
+ after "In God We Trust" was added to it in 2014. It renders as a placeholder
73
+ and should stay one.
74
+ sources:
75
+ - "https://www.dor.ms.gov/motor-vehicle/available-license-plates # '© Copyright 2026 - State of Mississippi' site-wide footer, on the very page that publishes the plate designs"
76
+ - "https://en.wikipedia.org/wiki/Copyright_status_of_works_by_subnational_governments_of_the_United_States # LOCATOR ONLY, via the pinned dossier: the default-copyrighted rule for states and the list of exceptions, which does not include Mississippi"
77
+
78
+ us_standards:
79
+ no_federal_mandate: true
80
+ chain: "SAE J686 -> AAMVA License Plate Standard Edition 3 (September 2025) -> voluntary state adoption; recommendations in the declarative present, no enforcement power."
81
+ aamva_edition_3:
82
+ dimensions_delegated: "AAMVA §3.1 sends dimensions and bolt holes to SAE J686, whose text is PAYWALLED and was NOT obtained. No J686 dimension is quoted anywhere in this dataset. Mississippi's 12x6 in figure below is locator-grade, not J686-derived."
83
+ 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."
84
+ stacked_characters: >-
85
+ AAMVA: "If stacked characters are used, they are part of the official license
86
+ plate number. No more than two characters are to be stacked." THIS RULE EARNS
87
+ ITS KEEP IN MISSISSIPPI. The motorcycle plate prints a stacked M-over-C class
88
+ marker ahead of the serial, and the disabled plate a stacked D-over-B. Under
89
+ AAMVA those stacked pairs are SERIAL, not decoration — so a normaliser that
90
+ discards them is destroying part of the plate number, and `us-ms-motorcycle`
91
+ below encodes the pair as serial characters accordingly.
92
+ replacement_cycle: "AAMVA §1.1 recommends a cycle not to exceed 7 to 10 years. MISSISSIPPI LEGISLATED FIVE — shorter than the entire AAMVA range, and the shortest standard-issue cycle in this group by half. See § 27-19-31(1) under us-ms-standard-2024."
93
+ source: "https://www.aamva.org/getmedia/646bcc8a-219b-47d8-b5cd-726240473163/License-Plate-Standard-Edition-3_September-2025-Update.pdf"
94
+ folklore_caution: >-
95
+ The Mississippi article, like every state article read for this group, opens
96
+ with the "1956 agreement" that supposedly standardised the 6x12 inch plate,
97
+ and adds that Mississippi complied "22 years beforehand, in 1934". The claim
98
+ now carries exactly one citation — Garrish, Christopher, "Reconsidering the
99
+ Standard Plate Size", *Plates* (Automobile License Plate Collectors
100
+ Association), vol. 62 no. 5, October 2016 — a members' magazine that was not
101
+ obtainable and whose title suggests it revises rather than confirms the story.
102
+ Recorded as still-unsourced. Mississippi's 12x6 in figure in this file is
103
+ locator-grade and is labelled as such; no state instrument stating it was found.
104
+
105
+ display_rules:
106
+ default_reported: "ONE plate, rear only"
107
+ evidence: >-
108
+ LOCATOR-GRADE, and recorded as an unclosed claim rather than a fact: the
109
+ Mississippi article states the state "only requires rear plates" and switched
110
+ to rear-only in 1925. No Mississippi statute or administrative rule on plate
111
+ display was obtained, for the LexisNexis reason at the head of this file.
112
+ sources:
113
+ - "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Mississippi # LOCATOR ONLY: rear-only since 1925"
114
+
115
+ series:
116
+
117
+ # =========================================================================
118
+ # THE CURRENT STANDARD BASE — and the best-labelled period in the dataset.
119
+ # =========================================================================
120
+ - id: us-ms-standard-2024
121
+ class: standard
122
+ categories: [car, van, truck]
123
+ period: { start: 2024 }
124
+ period_evidence: agency-labelled-series
125
+ period_scheduled_end: 2029
126
+ period_scheduled_end_note: >-
127
+ THE AGENCY LABELS ITS OWN SUNSET AND WE DO NOT WRITE IT INTO `period.end`.
128
+ The Mississippi Department of Revenue titles the current issue the
129
+ "2024-2029 Series" on its Available License Plates page, so 2029 is an
130
+ ANNOUNCED, agency-stated scheduled end — genuinely different in kind from a
131
+ guess. It is carried here rather than in `period.end` for two reasons: the
132
+ lint's period rails cap `end` at the current year plus one (correctly — an
133
+ `end` in the dataset means the series stopped issuing, and this one has not),
134
+ and a scheduled end is a plan, which states revise. When 2029 arrives and the
135
+ succeeding base lands, `end: 2029` moves into `period` and this key retires.
136
+ matching: strict
137
+ format:
138
+ pattern: "LLL 999"
139
+ regex: '\A[A-Z]{3} ?\d{3}\z'
140
+ charset:
141
+ notes: >-
142
+ No alphabet restriction was obtained from any Mississippi instrument. The
143
+ three-letter/three-numeral arrangement is locator-grade, corroborated by
144
+ the DOR's own plate image filename ("2024 Standard Passenger Plate"), and
145
+ no `regex_strict` is offered because no exclusion is sourced.
146
+ separator_note: >-
147
+ A SEPARATOR THAT IS NOT A CHARACTER, and the reason this entry is worth
148
+ reading twice. On the 2024 base the gap between the letter group and the
149
+ numeral group is occupied by a screened MAGNOLIA BLOSSOM on a blue circle —
150
+ the emblem IS the separator. Under plates/_meta/separators.yml §4 that
151
+ device is a design element carried in `design.emblem` and is NEVER part of
152
+ the serial and never strippable-as-punctuation, because it is not
153
+ punctuation. The regex therefore spells the position as an optional
154
+ SPACE — the honest printed form of a gap the authority fills with artwork —
155
+ exactly as Spain's Anexo XVIII gap is spelled. Tennessee in this same group
156
+ does the same thing with a flag emblem; two states, one modelling rule.
157
+ pattern_note: >-
158
+ `matching: strict`: this regex lies inside what Mississippi issues, and a
159
+ match is a real well-formedness claim for a current Mississippi passenger
160
+ plate. No `regex_statutory` twin is given because, unlike Florida, no
161
+ Mississippi instrument stating an outer character cap was obtained — the
162
+ five-year cycle is legislated, the serial width is not, as far as this pass
163
+ could establish.
164
+ design:
165
+ plate: { w: 12, h: 6, unit: in, hex_basis_note: "size is locator-grade; no Mississippi instrument stating it was obtained" }
166
+ material: "aluminium (locator)"
167
+ manufacturer_reported: "Waldale Manufacturing Limited, Amherst, Nova Scotia — a NON-US, non-prison manufacturer, which is unusual for a US state and is recorded because it bears on font and sheeting questions if the render layer ever needs them. Locator-grade."
168
+ background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
169
+ foreground: "#00205B"
170
+ colour_note: >-
171
+ Both hexes are `observed` approximations of the described "embossed dark blue
172
+ serial on white plate" and are NOT sourced to any Mississippi instrument. No
173
+ colour specification for Mississippi plates was located. Treat as unverified.
174
+ relief: "EMBOSSED serial — Mississippi still embosses where Alabama has screened since 2006 and Kentucky flat-prints since 2020. A real manufacturing difference with render consequences."
175
+ legend_top: "MISSISSIPPI"
176
+ legend_bottom: "<county name>"
177
+ legend_rule: >-
178
+ The county name is EMBOSSED at the bottom centre — printed into the plate,
179
+ not applied as a sticker. That is the opposite implementation from Tennessee
180
+ and Kentucky in this same group, which both put the county on a removable
181
+ sticker, and it is why a Mississippi plate cannot change county without
182
+ being replaced. Locator-grade description; the DOR page confirms the design
183
+ but not the wording.
184
+ emblem: { present: true, rendered: placeholder, description: "magnolia blossom against a blue circle, occupying the serial gap — see format.separator_note" }
185
+ rear_differs: false
186
+ replacement_cycle:
187
+ years: 5
188
+ statutory_text: >-
189
+ § 27-19-31(1), quoted verbatim by the Mississippi Department of Revenue on
190
+ its own plate page: "The Department of Revenue is authorized and directed to
191
+ establish and maintain a vehicle registration renewal system whereby the
192
+ license tag attached upon a motor vehicle or trailer may be issued for five
193
+ (5) years with the approval of the License Tag Commission, except for motor
194
+ vehicles registered in excess of ten thousand (10,000) pounds gross vehicle
195
+ weight, and motor vehicles in a fleet registered, apportioned vehicles,
196
+ rental and commercial trailers and buses, which shall be issued for a period
197
+ of time determined by the Department of Revenue."
198
+ note: >-
199
+ FIVE YEARS IS SHORTER THAN AAMVA'S ENTIRE RECOMMENDED RANGE, which runs 7 to
200
+ 10. Florida legislated the top of the range at 10; Mississippi legislated
201
+ below the bottom of it. Note also the third actor in that sentence — a
202
+ LICENSE TAG COMMISSION whose approval the cycle requires. Mississippi is the
203
+ only state in this group where plate issuance is a two-body decision, and
204
+ the Commission's own instruments were not obtained (recorded gap).
205
+ exclusions: "vehicles over 10,000 lb GVW, fleet-registered vehicles, apportioned vehicles, rental and commercial trailers, and buses are all outside the five-year rule and run on periods the Department sets"
206
+ region_encoding:
207
+ mechanism: "county name printed as a LEGEND, plus serial issuance in LETTER BLOCKS allocated per county"
208
+ note: >-
209
+ Mississippi encodes county TWICE and only one of the two is in the string.
210
+ The legend is printed text and decodes nothing. But serials are, in the
211
+ locator's words, "Issued in blocks by county" — so the leading letters DO
212
+ carry county information, via an allocation table rather than a positional
213
+ code. That makes Mississippi decodable in principle and undecodable in
214
+ practice at this gate: the block table exists, it is period-dependent (the
215
+ locator carries six different allocation eras from 1976 forward), and it is
216
+ self-flagged INCOMPLETE at its source. Not modelled. It belongs in
217
+ plates/_decode/us-ms-county-blocks.yml at L4, with per-era periods, and a
218
+ parse API must NOT guess a Mississippi county from a serial prefix until it
219
+ exists.
220
+ sources:
221
+ - "https://www.dor.ms.gov/motor-vehicle/available-license-plates # Mississippi DOR: the '2024-2029 Series' label on the Standard Passenger Vehicle License Plate; the verbatim quotation of Miss. Code Ann. § 27-19-31(1) and its five-year tag, License Tag Commission approval and exclusion list; the '2024 Standard Passenger Plate' design image"
222
+ - "https://www.aamva.org/getmedia/646bcc8a-219b-47d8-b5cd-726240473163/License-Plate-Standard-Edition-3_September-2025-Update.pdf # AAMVA Ed.3 §1.1, the 7-to-10-year range Mississippi's legislated five years sits below"
223
+ - "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Mississippi # LOCATOR ONLY (PRD-PLATES §4): January 2024 start, the ABC 123 arrangement, the magnolia-on-blue-circle separator, embossed dark blue on white, 12x6 in aluminium, Waldale manufacture, county-name legend embossed at bottom, block-by-county issuance, and the designer attribution. None asserted as sourced"
224
+ notes: >-
225
+ MISSISSIPPI STANDARD ISSUE, 2024-2029 SERIES. THE PERIOD IS THE STRONGEST
226
+ CLAIM IN THIS ENTRY, which inverts the usual shape of a US plate record and is
227
+ the reason Mississippi is worth having early: the issuing agency names the
228
+ window on its own page, and the statute behind the window is quoted by that
229
+ same agency. Compare Alabama in this group, where the design is superbly
230
+ sourced and the date is a collector's note.
231
+ WHAT IS DELIBERATELY NOT CLAIMED: a serial-width cap (none found), a colour
232
+ specification (none found), a display rule (none found), and a county decode
233
+ (the block table is real but incomplete and period-dependent). Four honest
234
+ gaps beat one invented fact.
235
+
236
+ # =========================================================================
237
+ # THE BLACKOUT OPTION — a parallel standard base, and a genuinely unusual one.
238
+ # =========================================================================
239
+ - id: us-ms-blackout-2024
240
+ class: standard
241
+ categories: [car, van, truck]
242
+ period: { start: 2024 }
243
+ period_evidence: agency-labelled-series
244
+ period_scheduled_end: 2029
245
+ matching: strict
246
+ format:
247
+ pattern: "999LLL"
248
+ regex: '\A\d{3} ?[A-Z]{3}\z'
249
+ charset: { notes: "no alphabet restriction obtained; arrangement is locator-grade" }
250
+ pattern_note: >-
251
+ THE ARRANGEMENT IS REVERSED FROM THE STANDARD BASE — numerals first, letters
252
+ second — which means a Mississippi serial's SHAPE alone distinguishes a
253
+ blackout plate from a standard one. That is a free discriminator for a parse
254
+ API and it is why this is its own series rather than a colour variant: under
255
+ PRD-PLATES §2.3 a variant becomes its own series if format OR design OR
256
+ period differs, and here both format and design differ.
257
+ design:
258
+ plate: { w: 12, h: 6, unit: in }
259
+ background: { color: "#000000", finish: retroreflective, hex_basis: observed }
260
+ foreground: "#FFFFFF"
261
+ colour_note: "described by the DOR only as the 'Blackout' plate and by a locator as 'Black tag with white letters'; both hexes are observed approximations, neither is sourced to a specification"
262
+ legend_bottom: "<county name>"
263
+ emblem: { present: true, rendered: placeholder }
264
+ fee: "$5 additional (locator-grade; the DOR's own fee schedule was not extracted)"
265
+ region_encoding: "county name as legend; block allocation as for us-ms-standard-2024"
266
+ sources:
267
+ - "https://www.dor.ms.gov/motor-vehicle/available-license-plates # Mississippi DOR lists the 'Blackout Passenger Vehicle License Plate' as a '2024-2029 Series' plate alongside the standard passenger plate, with its own design image ('2024 Blackout Passenger Plate')"
268
+ - "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Mississippi # LOCATOR ONLY: introduced July 2022, black with white letters, 123ABC arrangement, $5 fee"
269
+ notes: >-
270
+ THE BLACKOUT PLATE. Modelled as a STANDARD-class series, not a specialty one,
271
+ because the Department of Revenue presents it on the same page and under the
272
+ same 2024-2029 series label as the standard passenger plate — it is a second
273
+ standard base, not a cause plate. Note the period disagreement the record keeps
274
+ rather than resolves: a locator dates the blackout option's introduction to July
275
+ 2022, while the DOR labels the plate now in issue as 2024-2029. Both can be
276
+ true — an option introduced in 2022 on the previous base and re-cut onto the
277
+ 2024 base — and PRD-PLATES §5.3 forbids averaging them. The 2024 start is taken
278
+ because it is the agency's own label for the plate the agency is issuing; the
279
+ 2022 introduction is recorded here and nowhere else.
280
+
281
+ # =========================================================================
282
+ # ONE SERIES BACK — the state-seal base, and the one with a lawsuit attached.
283
+ # =========================================================================
284
+ - id: us-ms-standard-2019
285
+ class: standard
286
+ categories: [car, van, truck]
287
+ period: { start: 2019, end: 2024 }
288
+ period_evidence: locator-dated-agency-consistent
289
+ matching: strict
290
+ format:
291
+ pattern: "LLL 9999"
292
+ regex: '\A[A-Z]{3} ?\d{4}\z'
293
+ charset: { notes: "four numerals rather than three — the serial space was widened for this base and narrowed again in 2024, which is itself evidence that Mississippi re-cuts the arrangement at each five-year reissue rather than continuing a counter" }
294
+ design:
295
+ plate: { w: 12, h: 6, unit: in }
296
+ background: { finish: retroreflective, hex_basis: unsourced }
297
+ colour_note: "described as an embossed dark blue serial on a gold gradient; no hex is recorded because a gradient has no single background value and none is sourced"
298
+ legend_top: "MISSISSIPPI"
299
+ legend_bottom: "<county name>"
300
+ emblem: { present: true, rendered: placeholder, description: "the SEAL OF MISSISSIPPI, screened slightly left of centre — see artwork_risk.emblem_rule; a state seal is the most protected object that can appear on a plate and this one is contested" }
301
+ rear_differs: false
302
+ region_encoding: "county name as legend; block allocation, as for the successor base"
303
+ sources:
304
+ - "https://www.dor.ms.gov/motor-vehicle/available-license-plates # the DOR's current-series label of 2024-2029 is what closes this series at 2024"
305
+ - "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Mississippi # LOCATOR ONLY: 'January 2019 - December 2023', state seal on gold gradient, ABC 1234 arrangement, and the note recording controversy and litigation over 'In God We Trust' (added to the seal in 2014 and to the state flag in 2021)"
306
+ notes: >-
307
+ THE STATE-SEAL BASE, 2019 to 2024 — the predecessor the L2 scope asks for, and
308
+ the entry that carries the group's sharpest IP caution. Its central device was
309
+ the state seal, which is protected by a regime entirely separate from copyright,
310
+ and which was itself the subject of controversy and litigation after "In God We
311
+ Trust" was added to it in 2014. A render of this series must use the placeholder
312
+ and a future clearance must treat the seal question as its own question.
313
+ PERIOD NOTE: the locator ends this base in December 2023 and the DOR's own label
314
+ begins the successor in 2024. Those agree at the boundary, which is why the
315
+ period is recorded as 2019-2024 with `end` populated rather than left open —
316
+ the rare case in this group where a locator date and an agency label corroborate
317
+ each other instead of conflicting.
318
+
319
+ # =========================================================================
320
+ # MOTORCYCLE — the stacked-character case, and why AAMVA §2.x matters here.
321
+ # =========================================================================
322
+ - id: us-ms-motorcycle
323
+ class: motorcycle
324
+ categories: [motorcycle]
325
+ period: { start: 2024 }
326
+ period_evidence: instrument-in-force-upper-bound
327
+ matching: strict
328
+ format:
329
+ pattern: "MC 99999"
330
+ regex: '\AMC ?(?:\d{5}|[A-Z]\d{4})\z'
331
+ charset:
332
+ notes: >-
333
+ The leading MC is a STACKED PAIR on the physical plate — M above C, in a
334
+ reduced type size, ahead of the serial proper. Under AAMVA Edition 3 a
335
+ stacked pair "are part of the official license plate number", so MC is
336
+ recorded as serial characters and not as a legend. Two arrangements are
337
+ reported behind the pair: five numerals, and a letter followed by four
338
+ numerals. Both are carried in the regex.
339
+ stacked_characters_note: >-
340
+ THIS IS THE FIRST SERIES IN THE DATASET WHERE THE STACKED-CHARACTER RULE
341
+ CHANGES THE ANSWER. A normaliser that treats MC as decoration turns
342
+ "MC 12345" into "12345" and silently collides the motorcycle space with the
343
+ numeric spaces of half a dozen other Mississippi plate types. AAMVA is
344
+ explicit that it may not, and the decision belongs in the parse layer, which
345
+ is why it is stated here rather than assumed. Mississippi's disabled plate
346
+ stacks D-over-B the same way.
347
+ design:
348
+ plate: { w: 7, h: 4, unit: in, hex_basis_note: "reduced motorcycle size is the North American convention and is NOT sourced for Mississippi — recorded gap" }
349
+ background: { finish: retroreflective, hex_basis: unsourced }
350
+ note: "described only as 'Similar to current passenger base'"
351
+ emblem: { present: true, rendered: placeholder }
352
+ region_encoding: none
353
+ sources:
354
+ - "https://www.dor.ms.gov/motor-vehicle/available-license-plates # the DOR's plate catalogue establishes that Mississippi serializes non-passenger types separately"
355
+ - "https://www.aamva.org/getmedia/646bcc8a-219b-47d8-b5cd-726240473163/License-Plate-Standard-Edition-3_September-2025-Update.pdf # AAMVA Ed.3: stacked characters are part of the official plate number, at most two stacked — the rule that makes MC serial rather than decoration"
356
+ - "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Mississippi # LOCATOR ONLY: the M/C stacked prefix and both reported arrangements, M/C 12345 and M/C A1234"
357
+ notes: >-
358
+ MISSISSIPPI MOTORCYCLE PLATES. Its own series on the §2.3 design test (reduced
359
+ size) and its own serial space. The plate size is the weakest claim in the entry
360
+ and is flagged: 7x4 in is the regional convention and no Mississippi instrument
361
+ stating it was obtained, unlike Alabama, whose department publishes the figure.
362
+ The entry earns its place for the stacked-character finding rather than for its
363
+ dimensions.
364
+
365
+ # =========================================================================
366
+ # SPECIALTY — THE PROGRAM INDEX, per PRD-PLATES §2.5.
367
+ # =========================================================================
368
+ - id: us-ms-specialty-index
369
+ class: specialty
370
+ categories: [car, van, truck, motorcycle]
371
+ period: { start: 2024 }
372
+ period_evidence: instrument-in-force-upper-bound
373
+ matching: recall-only
374
+ format:
375
+ pattern: "999999"
376
+ regex: '\A[A-Z0-9]{1,7}\z'
377
+ charset: { notes: "no Mississippi character cap was obtained. The bound here is a conservative seven, consistent with the region, and is NOT sourced — which is precisely why this series is recall-only" }
378
+ pattern_note: >-
379
+ `matching: recall-only` (§2.7): one entry stands for every Mississippi
380
+ specialty program, whose individual arrangements are out of scope at this
381
+ gate (§2.5), and whose width bound is not even sourced. A match is a shape
382
+ hit and nothing more. No `regex_strict`, per §2.7.
383
+ design:
384
+ plate: { w: 12, h: 6, unit: in }
385
+ background: { finish: retroreflective }
386
+ emblem: { present: true, rendered: placeholder }
387
+ note: "one design per authorised program; individual designs are L4 scope and none is described here"
388
+ program_index:
389
+ count_official: null
390
+ count_note: >-
391
+ NO OFFICIAL COUNT WAS OBTAINED, and the record says so rather than borrowing
392
+ one. The Department of Revenue's Specialty License Plates page and its Special
393
+ Tag Fee Distribution page are both search-widget applications that render no
394
+ list in fetched HTML, so neither a count nor a program list could be
395
+ extracted. This is the cleanest unfinished item in the Mississippi record and
396
+ is closable by one browser-rendered fetch.
397
+ official_list_url: "https://www.dor.ms.gov/motor-vehicle/available-license-plates/specialty-license-plates"
398
+ fee_distribution_url: "https://www.dor.ms.gov/motor-vehicle/available-license-plates/special-tag-fee-distribution"
399
+ nascar_program_url: "https://www.dor.ms.gov/motor-vehicle/mvs-available-tags/nascar-license-plates"
400
+ nascar_note: >-
401
+ Mississippi runs a NASCAR-driver plate line as a NAMED category on its own DOR
402
+ menu, trademark symbol and all. It is recorded because it is a structural
403
+ oddity worth one line: a state licensing a commercial sports property into its
404
+ own plate catalogue is a different animal from a cause or collegiate plate,
405
+ and it is a live example of the third-party-copyright question Alabama's design
406
+ specification polices explicitly.
407
+ issuance_volume_evidence: >-
408
+ Mississippi has published specialty issuance VOLUMES, which almost no state
409
+ does. For fiscal year 2014 a locator reports 2,749,315 plates issued by
410
+ counties, of which 683,550 were specialty — including 165,849 Antique, 100,698
411
+ disabled, 78,714 personalized, 18,367 Mississippi State University and 15,596
412
+ University of Mississippi — with $5,113,035 paid out to sponsoring
413
+ organisations. Twelve years stale and locator-grade, so it is recorded as a
414
+ POINTER to the reporting practice rather than as data: if the DOR still
415
+ produces that report, it is the Mississippi equivalent of Florida's monthly
416
+ active-plate portal and should be captured on a schedule before it is lost.
417
+ region_encoding: none
418
+ sources:
419
+ - "https://www.dor.ms.gov/motor-vehicle/available-license-plates/specialty-license-plates # the official specialty index — a search application, no list extractable without a rendering browser"
420
+ - "https://www.dor.ms.gov/motor-vehicle/available-license-plates/special-tag-fee-distribution # the official fee-distribution index, same shape"
421
+ - "https://www.dor.ms.gov/motor-vehicle/mvs-available-tags/nascar-license-plates # the NASCAR driver plate line as its own DOR category"
422
+ - "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Mississippi # LOCATOR ONLY: the FY2014 issuance volumes and payout figure, and the July 2022 fee levels ($33 most specialty, $53 collegiate)"
423
+ notes: >-
424
+ THE MISSISSIPPI SPECIALTY INDEX — one entry standing for the program, per §2.5.
425
+ It is the thinnest index in this group and the file says so plainly: no count, no
426
+ program list, no sourced width. What it does carry that is worth keeping is the
427
+ pointer to Mississippi's issuance-volume reporting. Florida's monthly
428
+ active-plate report was called the most valuable structured artefact in the whole
429
+ US pass precisely because issuing agencies publish volumes that nobody archives;
430
+ Mississippi appears to have published the same kind of thing, and the only
431
+ evidence obtained for it is twelve years old. Finding the current report is a
432
+ higher-value follow-up than counting the programs.