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.
Files changed (189) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop_todo.yml +164 -0
  3. data/CHANGELOG.md +321 -0
  4. data/README.md +88 -15
  5. data/data/PROVENANCE-vehicles.md +12 -0
  6. data/data/plates/PROVENANCE.md +10 -0
  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/es-provinces.yml +116 -0
  14. data/data/plates/_decode/fr-departements.yml +191 -0
  15. data/data/plates/_decode/gb-age-identifiers.yml +170 -0
  16. data/data/plates/_decode/gb-memory-tags.yml +202 -0
  17. data/data/plates/_decode/gr-prefectures.yml +1408 -0
  18. data/data/plates/_decode/hr-cities.yml +315 -0
  19. data/data/plates/_decode/ie-counties.yml +227 -0
  20. data/data/plates/_decode/in-state-codes.yml +169 -0
  21. data/data/plates/_decode/is-districts-1938.yml +116 -0
  22. data/data/plates/_decode/it-provinces.yml +348 -0
  23. data/data/plates/_decode/jp-office-marks.yml +960 -0
  24. data/data/plates/_decode/jp-use-marks.yml +205 -0
  25. data/data/plates/_decode/kr-authority-marks.yml +146 -0
  26. data/data/plates/_decode/kr-use-syllables.yml +194 -0
  27. data/data/plates/_decode/lu-series-order.yml +638 -0
  28. data/data/plates/_decode/mx-entity-series.yml +380 -0
  29. data/data/plates/_decode/my-index-marks.yml +271 -0
  30. data/data/plates/_decode/no-counties-1913.yml +148 -0
  31. data/data/plates/_decode/no-districts.yml +901 -0
  32. data/data/plates/_decode/pl-powiats.yml +567 -0
  33. data/data/plates/_decode/pt-trailer-services.yml +96 -0
  34. data/data/plates/_decode/ro-counties.yml +213 -0
  35. data/data/plates/_decode/se-diplomatic.yml +220 -0
  36. data/data/plates/_decode/si-regions.yml +123 -0
  37. data/data/plates/_decode/sk-districts.yml +314 -0
  38. data/data/plates/_decode/th-registration-elements.yml +208 -0
  39. data/data/plates/_decode/ua-regions.yml +393 -0
  40. data/data/plates/_decode/za-licence-marks.yml +215 -0
  41. data/data/plates/_meta/classes.yml +26 -0
  42. data/data/plates/_meta/separators.yml +102 -0
  43. data/data/plates/ad.yml +961 -0
  44. data/data/plates/ar.yml +762 -0
  45. data/data/plates/at.yml +1424 -0
  46. data/data/plates/au-act.yml +472 -0
  47. data/data/plates/au-nsw.yml +282 -0
  48. data/data/plates/au-nt.yml +431 -0
  49. data/data/plates/au-qld.yml +272 -0
  50. data/data/plates/au-sa.yml +248 -0
  51. data/data/plates/au-tas.yml +302 -0
  52. data/data/plates/au-vic.yml +215 -0
  53. data/data/plates/au-wa.yml +309 -0
  54. data/data/plates/be.yml +1840 -0
  55. data/data/plates/br.yml +1152 -0
  56. data/data/plates/ca-ab.yml +430 -0
  57. data/data/plates/ca-bc.yml +697 -0
  58. data/data/plates/ca-mb.yml +499 -0
  59. data/data/plates/ca-nb.yml +537 -0
  60. data/data/plates/ca-nl.yml +743 -0
  61. data/data/plates/ca-ns.yml +808 -0
  62. data/data/plates/ca-nt.yml +610 -0
  63. data/data/plates/ca-nu.yml +280 -0
  64. data/data/plates/ca-on.yml +881 -0
  65. data/data/plates/ca-pe.yml +592 -0
  66. data/data/plates/ca-qc.yml +1036 -0
  67. data/data/plates/ca-sk.yml +256 -0
  68. data/data/plates/ca-yt.yml +656 -0
  69. data/data/plates/ch.yml +1273 -0
  70. data/data/plates/cn.yml +1431 -0
  71. data/data/plates/cy.yml +688 -0
  72. data/data/plates/cz.yml +1179 -0
  73. data/data/plates/de.yml +1107 -0
  74. data/data/plates/dk.yml +1647 -0
  75. data/data/plates/ee.yml +1275 -0
  76. data/data/plates/es.yml +888 -0
  77. data/data/plates/fi.yml +1271 -0
  78. data/data/plates/fr.yml +1265 -0
  79. data/data/plates/gb.yml +1188 -0
  80. data/data/plates/gr.yml +721 -0
  81. data/data/plates/hr.yml +860 -0
  82. data/data/plates/hu.yml +959 -0
  83. data/data/plates/ie.yml +775 -0
  84. data/data/plates/in.yml +1172 -0
  85. data/data/plates/is.yml +667 -0
  86. data/data/plates/it.yml +1317 -0
  87. data/data/plates/jp.yml +3650 -0
  88. data/data/plates/kr.yml +1375 -0
  89. data/data/plates/li.yml +1010 -0
  90. data/data/plates/lt.yml +879 -0
  91. data/data/plates/lu.yml +842 -0
  92. data/data/plates/lv.yml +924 -0
  93. data/data/plates/mc.yml +1024 -0
  94. data/data/plates/mt.yml +854 -0
  95. data/data/plates/mx.yml +1372 -0
  96. data/data/plates/my.yml +685 -0
  97. data/data/plates/nl.yml +1016 -0
  98. data/data/plates/no.yml +1018 -0
  99. data/data/plates/nz.yml +1699 -0
  100. data/data/plates/pl.yml +1296 -0
  101. data/data/plates/pt.yml +847 -0
  102. data/data/plates/ro.yml +785 -0
  103. data/data/plates/se.yml +1091 -0
  104. data/data/plates/si.yml +1105 -0
  105. data/data/plates/sk.yml +1439 -0
  106. data/data/plates/sm.yml +1119 -0
  107. data/data/plates/th.yml +1150 -0
  108. data/data/plates/ua.yml +1672 -0
  109. data/data/plates/us-ak.yml +763 -0
  110. data/data/plates/us-al.yml +457 -0
  111. data/data/plates/us-ar.yml +427 -0
  112. data/data/plates/us-as.yml +454 -0
  113. data/data/plates/us-az.yml +430 -0
  114. data/data/plates/us-ca.yml +892 -0
  115. data/data/plates/us-co.yml +452 -0
  116. data/data/plates/us-ct.yml +427 -0
  117. data/data/plates/us-dc.yml +614 -0
  118. data/data/plates/us-de.yml +551 -0
  119. data/data/plates/us-fl.yml +741 -0
  120. data/data/plates/us-ga.yml +644 -0
  121. data/data/plates/us-gu.yml +658 -0
  122. data/data/plates/us-hi.yml +585 -0
  123. data/data/plates/us-ia.yml +438 -0
  124. data/data/plates/us-id.yml +531 -0
  125. data/data/plates/us-il.yml +516 -0
  126. data/data/plates/us-in.yml +324 -0
  127. data/data/plates/us-ks.yml +351 -0
  128. data/data/plates/us-ky.yml +770 -0
  129. data/data/plates/us-la.yml +568 -0
  130. data/data/plates/us-ma.yml +379 -0
  131. data/data/plates/us-md.yml +536 -0
  132. data/data/plates/us-me.yml +445 -0
  133. data/data/plates/us-mi.yml +408 -0
  134. data/data/plates/us-mn.yml +411 -0
  135. data/data/plates/us-mo.yml +356 -0
  136. data/data/plates/us-mp.yml +402 -0
  137. data/data/plates/us-ms.yml +432 -0
  138. data/data/plates/us-mt.yml +619 -0
  139. data/data/plates/us-nc.yml +602 -0
  140. data/data/plates/us-nd.yml +419 -0
  141. data/data/plates/us-ne.yml +483 -0
  142. data/data/plates/us-nh.yml +394 -0
  143. data/data/plates/us-nj.yml +547 -0
  144. data/data/plates/us-nm.yml +574 -0
  145. data/data/plates/us-nv.yml +655 -0
  146. data/data/plates/us-ny.yml +592 -0
  147. data/data/plates/us-oh.yml +404 -0
  148. data/data/plates/us-ok.yml +513 -0
  149. data/data/plates/us-or.yml +392 -0
  150. data/data/plates/us-pa.yml +506 -0
  151. data/data/plates/us-pr.yml +507 -0
  152. data/data/plates/us-ri.yml +445 -0
  153. data/data/plates/us-sc.yml +605 -0
  154. data/data/plates/us-sd.yml +428 -0
  155. data/data/plates/us-tn.yml +471 -0
  156. data/data/plates/us-tx.yml +535 -0
  157. data/data/plates/us-ut.yml +384 -0
  158. data/data/plates/us-va.yml +567 -0
  159. data/data/plates/us-vi.yml +489 -0
  160. data/data/plates/us-vt.yml +458 -0
  161. data/data/plates/us-wa.yml +484 -0
  162. data/data/plates/us-wi.yml +509 -0
  163. data/data/plates/us-wv.yml +446 -0
  164. data/data/plates/us-wy.yml +523 -0
  165. data/data/plates/va.yml +604 -0
  166. data/data/plates/za.yml +1141 -0
  167. data/data/vehicles.json +160653 -105090
  168. data/lib/vehicles/configuration.rb +18 -2
  169. data/lib/vehicles/dataset.rb +73 -18
  170. data/lib/vehicles/fuzzy.rb +115 -0
  171. data/lib/vehicles/http.rb +48 -0
  172. data/lib/vehicles/make.rb +36 -6
  173. data/lib/vehicles/mcp_server.rb +5 -5
  174. data/lib/vehicles/model.rb +42 -6
  175. data/lib/vehicles/plates/jurisdiction.rb +32 -0
  176. data/lib/vehicles/plates/series.rb +291 -0
  177. data/lib/vehicles/plates/template_fill.rb +188 -0
  178. data/lib/vehicles/plates/templates.rb +162 -0
  179. data/lib/vehicles/plates.rb +122 -0
  180. data/lib/vehicles/providers/hosted_provider.rb +49 -58
  181. data/lib/vehicles/providers/local_provider.rb +4 -3
  182. data/lib/vehicles/validators/vehicle_make_validator.rb +3 -1
  183. data/lib/vehicles/validators/vehicle_model_validator.rb +1 -1
  184. data/lib/vehicles/version.rb +1 -1
  185. data/lib/vehicles.rb +53 -16
  186. data/rakelib/data_refresh.rake +109 -0
  187. data/rakelib/plates_refresh.rake +29 -0
  188. data/sig/vehicles.rbs +18 -0
  189. metadata +174 -2
@@ -0,0 +1,427 @@
1
+ # plates/us-ar.yml — Arkansas (PRD-PLATES gate L2, group: southcentral).
2
+ #
3
+ # READ THIS BEFORE TRUSTING ANY CLAIM IN THIS FILE. Arkansas is the WEAKEST-
4
+ # SOURCED state in the southcentral group, and the reason is structural rather
5
+ # than lazy: THE ARKANSAS CODE IS NOT FREELY FETCHABLE. Arkansas publishes its
6
+ # code through LexisNexis — the "Arkansas Code" link in the state's own portal
7
+ # navigation points at `advance.lexis.com/container?config=...`, a JavaScript
8
+ # application behind a session — and every free reproduction tried in this pass
9
+ # (law.justia.com, codes.findlaw.com) returned HTTP 403 behind Cloudflare. So
10
+ # unlike Texas (Chapter 504 read in full), Oklahoma (Title 47 read in full) and
11
+ # Louisiana (the OMV policy manual read in full), NOT ONE WORD OF ARKANSAS
12
+ # STATUTE IS QUOTED BELOW. Everything here rests on the DFA — the issuing
13
+ # authority, which is a primary source in its own right under PRD-PLATES §4 —
14
+ # or is explicitly marked locator-grade.
15
+ #
16
+ # THAT IS ITSELF A FINDING, and it belongs in the record: edicts of government
17
+ # are public domain at every level, which means Arkansas's statutes are PD by
18
+ # law while being, in practice, unreachable without a commercial subscription.
19
+ # The rights position and the access position have come apart. A verifier with
20
+ # Lexis access closes most of the gaps in this file in an afternoon; a verifier
21
+ # without it cannot, and no amount of care substitutes for the text.
22
+ #
23
+ # WHAT ARKANSAS IS ACTUALLY INTERESTING FOR: it is the counterexample to the
24
+ # assumption that a new serial format means a new plate. The Arkansas base
25
+ # design has been unchanged since MARCH 2006 — a twenty-year-old current base,
26
+ # in the same league as the "oldest designs still in use" list the US dossier
27
+ # records (Delaware 1959, Colorado 1960, DC 1975, Minnesota 1978, North Carolina
28
+ # 1982) — while the serial ARRANGEMENT changed underneath it in April 2021 when
29
+ # the numeric-first space ran out. Under PRD-PLATES §2.3 ("own series iff format
30
+ # OR design OR period differs") that is two series on one design, and modelling
31
+ # it any other way would let a parse API date an Arkansas plate fifteen years
32
+ # wrong.
33
+ jurisdiction: us-ar
34
+ authority:
35
+ name: Arkansas Department of Finance and Administration (DFA), Office of Motor Vehicle
36
+ url: "https://www.dfa.arkansas.gov/office/motor-vehicle/"
37
+ binding: vehicle
38
+ statute_edition: "NONE READ. The Arkansas Code (Title 27, Transportation, subtitle 4, ch. 14 — Motor Vehicle Registration and Licensing) is published through LexisNexis and was not obtainable by fetch in this pass. See the header. Every statutory reference below is a POINTER, not a quotation."
39
+ statute_access_note: >-
40
+ Attempted and failed: advance.lexis.com (JS container, session-gated, linked as
41
+ "Arkansas Code" from portal.arkansas.gov's own navigation); law.justia.com
42
+ (HTTP 403, Cloudflare interstitial); codes.findlaw.com (HTTP 403);
43
+ arkleg.state.ar.us FTPDocument paths (42-byte empty responses). Recorded so the
44
+ next pass does not repeat the same four dead ends.
45
+
46
+ # ---------------------------------------------------------------------------
47
+ # artwork_risk — required per jurisdiction by PRD-PLATES §4.
48
+ # ---------------------------------------------------------------------------
49
+ artwork_risk:
50
+ posture: no-pd-rule-found-default-copyrighted
51
+ basis: >-
52
+ ADVERSE BY DEFAULT. 17 U.S.C. §105 does not reach the states, so an Arkansas
53
+ plate design is copyrighted unless Arkansas says otherwise, and no Arkansas
54
+ instrument saying otherwise was located: Arkansas does not appear in the
55
+ favourable column of the US dossier's per-state table, and no {{PD-ARGov}}
56
+ tag was found in the sampled Commons set. What was found is a general portal
57
+ assertion rather than a plate-specific one — the Arkansas.gov footer reads
58
+ "Copyright 2026. All Rights Reserved, Arkansas.gov", and the portal's
59
+ acceptable-use terms state "You may not capture Arkansas.gov pages within
60
+ frames or present Arkansas.gov content as your own." Those bind web content,
61
+ not plate designs, and are recorded as posture evidence only.
62
+ contractor_wrinkle: >-
63
+ A complication no other state in this group has. The Arkansas.gov portal is
64
+ operated by TYLER TECHNOLOGIES (the DMCA designated agent named in the
65
+ acceptable-use terms is "Tyler Technologies, Inc., Attention: Chief Legal
66
+ Council, 1 Tyler Drive, Yarmouth, ME"), and the plates themselves are
67
+ reported to be manufactured by WALDALE MANUFACTURING LIMITED of Amherst,
68
+ Nova Scotia — a private Canadian contractor, where Texas uses its own prison
69
+ industries. Where a private contractor draws or manufactures a state design,
70
+ "is this a state work?" stops being the only question. Flagged, not resolved.
71
+ emblem_rule: >-
72
+ PRD-PLATES §3's placeholder default applies to the DIAMOND graphic that has
73
+ sat in the centre of the Arkansas base since 2006 (the diamond is an
74
+ Arkansas state symbol — the state is the only US diamond producer — so the
75
+ state-symbol regime, independent of copyright, is in play and is
76
+ unresearched). Render `emblem: {present: true, rendered: placeholder}`.
77
+ sources:
78
+ - "https://portal.arkansas.gov/v/acceptable-use/ # Arkansas.gov acceptable-use and legal notices: 'Copyright 2026. All Rights Reserved, Arkansas.gov'; the no-framing / no-passing-off rule; Tyler Technologies as DMCA designated agent"
79
+ - "https://en.wikipedia.org/wiki/Copyright_status_of_works_by_subnational_governments_of_the_United_States # LOCATOR ONLY (PRD-PLATES §4): §105 does not reach the states; Arkansas is not listed among the states with a favourable rule — used to evidence an ABSENCE"
80
+
81
+ # ---------------------------------------------------------------------------
82
+ # The US standards chain — recorded once per US file (see us-fl.yml).
83
+ # ---------------------------------------------------------------------------
84
+ us_standards:
85
+ no_federal_mandate: true
86
+ chain: "SAE J686 -> AAMVA License Plate Standard Edition 3 (September 2025) -> voluntary state adoption; AAMVA has no enforcement power."
87
+ aamva_edition_3:
88
+ dimensions_delegated: "AAMVA §3.1 delegates dimensions and bolt holes to SAE J686, whose text is paywalled and UNPINNED; no J686 dimension is quoted anywhere in this dataset."
89
+ 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, at least 1.25 in clear of the top and bottom edges"
90
+ replacement_cycle: "AAMVA §1.1 recommends a rolling or full replacement cycle 'not to exceed 7 to 10 years'. NO ARKANSAS REPLACEMENT CYCLE WAS FOUND, and on the evidence there is none: the current base has been issued continuously since March 2006, which is twenty years and twice AAMVA's outer bound. Recorded as an apparent absence, not as a sourced absence."
91
+ source: "https://www.aamva.org/getmedia/646bcc8a-219b-47d8-b5cd-726240473163/License-Plate-Standard-Edition-3_September-2025-Update.pdf"
92
+ folklore_caution: "The '1956 AMA standardization agreement' remains COMMONLY REPEATED, UNSOURCED (PRD-PLATES §4). The Arkansas locator repeats it with the same unobtained ALPCA magazine citation the Texas article uses, and adds a genuinely interesting detail that is worth chasing to a primary one day: that Arkansas's 1947, 1952 and 1955 issues were already 6 x 12 in but had NON-STANDARD MOUNTING HOLES, so the 1956 issue was the first to comply fully. If true, that is evidence the 1956 convention was about bolt spacing as much as about size — which is exactly what AAMVA §3.1 still delegates to J686 today."
93
+
94
+ # ---------------------------------------------------------------------------
95
+ # Display rules. Recorded thinly and honestly, because the Arkansas Code was
96
+ # unreachable and the DFA site does not restate the display rule.
97
+ # ---------------------------------------------------------------------------
98
+ display_rules:
99
+ default: "ONE plate, rear."
100
+ basis: locator-unconfirmed
101
+ note: >-
102
+ The claim "Only rear plates have been required since 1944" comes from a
103
+ LOCATOR and could not be traced to Arkansas Code § 27-14-716 or to any DFA
104
+ page in this pass. It is recorded because a display model needs a value and
105
+ because the claim is consistent with every Arkansas plate image in the
106
+ locator's tables, but it is NOT sourced and must not be published as though
107
+ it were. This is the single most-used fact in the file with the weakest
108
+ support; a verifier should close it first.
109
+ sources:
110
+ - "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Arkansas # LOCATOR ONLY (PRD-PLATES §4): 'Only rear plates have been required since 1944.' Not asserted as sourced; the underlying Arkansas Code section was not obtainable."
111
+
112
+ series:
113
+
114
+ # =========================================================================
115
+ # THE CURRENT STANDARD-ISSUE SERIES — a new ARRANGEMENT on a twenty-year-old
116
+ # DESIGN.
117
+ # =========================================================================
118
+ - id: us-ar-standard
119
+ class: standard
120
+ categories: [car, van, truck]
121
+ period: { start: 2021 }
122
+ period_evidence: locator-unconfirmed
123
+ matching: strict
124
+ format:
125
+ pattern: "LLL 99L"
126
+ regex: '\A[A-Z]{3} ?\d{2}[A-Z]\z'
127
+ serial_basis: locator-unconfirmed
128
+ charset:
129
+ notes: >-
130
+ NO ARKANSAS INSTRUMENT STATING AN ALPHABET OR A LENGTH WAS OBTAINED,
131
+ because the Code was unreachable and the DFA publishes no format page.
132
+ The arrangement recorded here — three letters, two numerals, one
133
+ letter — is locator-grade and is labelled as such throughout. It is
134
+ NOT given a `regex_strict`, because PRD-PLATES §2.7 reserves that tier
135
+ for the authority's own alphabet and Arkansas has published none.
136
+ excluded_reported: ["Q"]
137
+ excluded_basis: locator-unconfirmed
138
+ excluded_note: >-
139
+ Q is reported unused in Arkansas serials since 1968; U and V are
140
+ reported dropped from 1973 and ADDED BACK IN 2015, which is an unusual
141
+ direction of travel (most states shed letters over time and never
142
+ restore them) and is worth verifying precisely because it is unusual.
143
+ Recorded, not asserted.
144
+ progression: "reported AAA 01A onward, reaching BJA 95D as of 2025-10-31 (locator). Note this begins at AAA, i.e. the 2021 arrangement RESTARTED the alphabet rather than continuing the previous sequence — the opposite of Oklahoma, whose serials run straight through a base change."
145
+ design:
146
+ plate: { w: 12, h: 6, unit: in }
147
+ plate_dimension_basis: locator-unconfirmed
148
+ material: "aluminium; reported manufactured by Waldale Manufacturing Limited, Amherst, Nova Scotia (locator)"
149
+ background: { finish: retroreflective }
150
+ colour_note: >-
151
+ NO HEX ASSERTED. The base is reported as an embossed black serial on a
152
+ reflective gradient sky-blue-and-white field with a diamond graphic
153
+ screened in the centre, "Arkansas" in dark red at the top and "The
154
+ Natural State" in dark red at the bottom. All of that is locator
155
+ description; no DFA colour spec was obtained and the Code was unreachable.
156
+ legend_top: "Arkansas"
157
+ legend_bottom: "The Natural State"
158
+ graphic: { present: true, rendered: placeholder, description: "diamond, centred — an Arkansas state symbol; not reproduced (see artwork_risk.emblem_rule)" }
159
+ emblem: { present: true, rendered: placeholder }
160
+ band: { side: none }
161
+ rear_differs: false
162
+ region_encoding: none
163
+ region_encoding_note: "no geographic encoding in the serial and none reported historically; Arkansas is the plainest of the four states in this group on that axis."
164
+ sources:
165
+ - "https://www.dfa.arkansas.gov/office/motor-vehicle/ # the issuing authority: DFA Office of Motor Vehicle, the body that issues and administers Arkansas plates"
166
+ - "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Arkansas # LOCATOR ONLY (PRD-PLATES §4): the ABC 12D arrangement from April 2021, the AAA 01A to BJA 95D range as of 2025-10-31, the 2006 base design and its diamond graphic, the Q/U/V exclusions and the 2015 restoration of U and V, 12 x 6 in aluminium, Waldale manufacture. Wikipedia's own citation for the range is licenseplates.cc, a collector site. Nothing here is asserted as sourced."
167
+ notes: >-
168
+ ARKANSAS CURRENT ISSUE — SAME PLATE, NEW NUMBER SHAPE. The modelling
169
+ decision to record is why this is its own series rather than a note on the
170
+ 2006 entry: PRD-PLATES §2.3 makes a format difference sufficient on its
171
+ own, and here the format is the ONLY difference — same design, same
172
+ slogan, same graphic, same everything visible except the arrangement of the
173
+ characters. A dataset that keyed series to base designs would have one
174
+ Arkansas series covering twenty years and no way to date a plate; keying to
175
+ format gives a 2006/2021 boundary that is actually useful to a parser. The
176
+ cost is that the boundary itself is locator-grade, and it is labelled that
177
+ way rather than dressed up.
178
+
179
+ # =========================================================================
180
+ # ONE SERIES BACK — the same design with the numeric-first arrangement.
181
+ # =========================================================================
182
+ - id: us-ar-standard-2006
183
+ class: standard
184
+ categories: [car, van, truck]
185
+ period: { start: 2006, end: 2021 }
186
+ period_evidence: locator-unconfirmed
187
+ matching: strict
188
+ format:
189
+ pattern: "999 LLL"
190
+ regex: '\A\d{3} ?[A-Z]{3}\z'
191
+ serial_basis: locator-unconfirmed
192
+ charset:
193
+ notes: "three numerals then three letters. Same absence of any published Arkansas alphabet as the current series; U and V are reported re-admitted to the alphabet part-way through this series' life, in 2015 (locator)."
194
+ excluded_reported: ["Q"]
195
+ excluded_basis: locator-unconfirmed
196
+ progression: "reported 001 KPG to 999 ZZZ (locator) — i.e. this arrangement CONTINUED the sequence of the 1996-2006 series rather than restarting it, which is why the base change of March 2006 is invisible in the serial and the format change of 2021 is not."
197
+ design:
198
+ plate: { w: 12, h: 6, unit: in }
199
+ plate_dimension_basis: locator-unconfirmed
200
+ background: { finish: retroreflective }
201
+ colour_note: "IDENTICAL to the current series — reflective gradient sky blue and white, centred diamond, dark red 'Arkansas' and 'The Natural State'. The design did not change in 2021; only the serial did."
202
+ legend_top: "Arkansas"
203
+ legend_bottom: "The Natural State"
204
+ graphic: { present: true, rendered: placeholder, description: "diamond, centred" }
205
+ emblem: { present: true, rendered: placeholder }
206
+ rear_differs: false
207
+ region_encoding: none
208
+ sources:
209
+ - "https://www.dfa.arkansas.gov/office/motor-vehicle/ # the issuing authority"
210
+ - "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Arkansas # LOCATOR ONLY: the March 2006 base introduction, the 123 ABC arrangement, the 001 KPG to 999 ZZZ range, and the April 2021 arrangement change that ends this series"
211
+ notes: >-
212
+ THE 2006 ARRANGEMENT. Worth stating plainly for anyone reading the two
213
+ Arkansas standard series side by side: the DESIGN spans both and has been
214
+ current since March 2006, which puts Arkansas within reach of the
215
+ "oldest designs still in use" group the US dossier lists (Delaware 1959,
216
+ Colorado 1960, DC 1975, Minnesota 1978, North Carolina 1982). If the
217
+ Arkansas base survives to 2036 it belongs on that list outright. The
218
+ series split here is a SERIAL boundary, and the file says so in both
219
+ directions so that no consumer mistakes it for a redesign.
220
+
221
+ # =========================================================================
222
+ # MOTORCYCLE — separately serialized, and on its own arrangement.
223
+ # =========================================================================
224
+ - id: us-ar-motorcycle
225
+ class: motorcycle
226
+ categories: [motorcycle]
227
+ period: { start: 2015 }
228
+ period_evidence: locator-unconfirmed
229
+ matching: strict
230
+ format:
231
+ pattern: "999 LL"
232
+ regex: '\A\d{3} ?[A-Z]{2}\z'
233
+ serial_basis: locator-unconfirmed
234
+ charset: { notes: "three numerals then two letters, on a reduced-size plate. Arkansas has run motorcycle serials on their own sequence since at least 1979, cycling through AB 12, 12 AB, AB 123 and now 123 AB — a state that has repeatedly exhausted a five-character motorcycle space." }
235
+ progression: "reported 001 AA to 537 EF as of 2021-10-25 (locator)"
236
+ design:
237
+ plate: { unit: in, note: "reduced motorcycle size; no dimension obtained from any Arkansas source" }
238
+ background: { finish: retroreflective }
239
+ legend_top: "ARK. M CYCLE"
240
+ legend_basis: locator-unconfirmed
241
+ emblem: { present: true, rendered: placeholder }
242
+ rear_differs: false
243
+ registration_note: "all Arkansas motorcycle plates expired on 30 June until 1994, when staggered registration was introduced (locator) — a rare, datable administrative fact about a non-passenger class."
244
+ region_encoding: none
245
+ sources:
246
+ - "https://www.dfa.arkansas.gov/office/motor-vehicle/ # the issuing authority for all Arkansas plate classes"
247
+ - "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Arkansas # LOCATOR ONLY: the 123 AB arrangement from 2015, the 001 AA to 537 EF range, the 'ARK. M CYCLE' legend, and the 1994 move to staggered registration"
248
+ notes: >-
249
+ ARKANSAS MOTORCYCLE. Included because L2 names motorcycle as a core class
250
+ and because Arkansas plainly serializes it separately — the sequence has
251
+ cycled through four distinct arrangements since 1979, which is only
252
+ possible on an independent numbering space. Everything about the format is
253
+ locator-grade and is labelled so. Note the contrast with Texas, where a
254
+ motorcycle plate certainly exists (§ 504.943(b) makes motorcycles a
255
+ one-plate class) but no arrangement could be obtained at all, so no series
256
+ was minted.
257
+
258
+ # =========================================================================
259
+ # TRAILER — Arkansas issues PERMANENT trailer plates, split by tow class.
260
+ # =========================================================================
261
+ - id: us-ar-trailer-permanent
262
+ class: trailer
263
+ categories: [trailer]
264
+ period: { start: 2006 }
265
+ period_evidence: instrument-in-force-upper-bound
266
+ matching: strict
267
+ format:
268
+ pattern: "L999999"
269
+ regex: '\A[A-Z]{1,2} ?\d{5,6}\z'
270
+ serial_basis: locator-unconfirmed
271
+ charset:
272
+ notes: >-
273
+ A letter-prefix plus a six-digit block. The interesting fact is that
274
+ the PREFIX ENCODES THE TOWING CLASS rather than a region or a year:
275
+ A/B-prefixed permanent trailer plates are reported for trailers hauled
276
+ by automobiles and class 1 trucks, and PT-prefixed plates for trailers
277
+ hauled by class 2 through 8 trucks, on a visibly different colour
278
+ scheme (blue on tan rather than black on white). An S/P prefix is
279
+ reported as an unidentified third permanent-trailer classification.
280
+ The regex accepts one or two prefix letters and five or six digits to
281
+ cover the reported variants without asserting which is which.
282
+ progression: "reported A000 001 to B649830 as of 2021-05-29 for the automobile/class-1 series, PT00 001? to PT210303 as of 2022-04-28 for the class 2-8 series, and S/P000 001 to S/P000 923 as of 2022-11-29 for the unidentified third (all locator)"
283
+ design:
284
+ plate: { w: 12, h: 6, unit: in }
285
+ plate_dimension_basis: locator-unconfirmed
286
+ background: { finish: retroreflective }
287
+ colour_note: "reported all-embossed black on white for the A/B and S/P series and all-embossed blue on tan for the PT series — a genuine colour-carries-meaning case, where the colour distinguishes the tow class. No hex asserted."
288
+ emblem: { present: false }
289
+ rear_differs: false
290
+ validity: "PERMANENT — Arkansas issues these as non-expiring trailer plates (locator). A permanent plate means no revalidation decal and therefore no year signal anywhere on the artefact, which is a real problem for any dating heuristic."
291
+ region_encoding: none
292
+ weight_class_encoding:
293
+ mechanism: "letter prefix"
294
+ table:
295
+ - { prefix: "A", meaning: "permanent trailer, hauled by automobiles and class 1 trucks", basis: locator-unconfirmed }
296
+ - { prefix: "B", meaning: "permanent trailer, continuation of the A series", basis: locator-unconfirmed }
297
+ - { prefix: "PT", meaning: "permanent trailer, hauled by class 2 through 8 trucks", basis: locator-unconfirmed }
298
+ - { prefix: "SP", meaning: "permanent trailer, classification not identified in any source consulted", basis: locator-unconfirmed }
299
+ note: >-
300
+ THIS IS THE ONE PLACE IN THE SOUTHCENTRAL GROUP WHERE A PREFIX CARRIES
301
+ VEHICLE-CLASS SEMANTICS THAT A PARSER COULD USE, which is why it is
302
+ recorded as a table rather than buried in prose. It is entirely
303
+ locator-grade and must be verified against DFA's own trailer-registration
304
+ material before any consumer relies on it.
305
+ sources:
306
+ - "https://www.dfa.arkansas.gov/office/motor-vehicle/ # the issuing authority"
307
+ - "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Arkansas # LOCATOR ONLY: the three permanent-trailer prefixes, their reported tow-class meanings, the colour split, and the observed ranges"
308
+ notes: >-
309
+ ARKANSAS PERMANENT TRAILER PLATES. Included because L2 names trailer as a
310
+ core class and because Arkansas's version has an actual decode in it — the
311
+ prefix tells you what tows the trailer. Everything is locator-grade. The
312
+ S/P series is recorded WITH ITS UNKNOWN MEANING rather than omitted,
313
+ because a decode table with a hole in it that says "hole" is more useful
314
+ than a tidy table that quietly drops the case it cannot explain.
315
+
316
+ # =========================================================================
317
+ # HISTORIC — Arkansas runs a permanent-style antique series, and an older one
318
+ # that is dead but still lawfully displayed.
319
+ # =========================================================================
320
+ - id: us-ar-antique
321
+ class: historic
322
+ categories: [car, truck]
323
+ period: { start: 2007 }
324
+ period_evidence: locator-unconfirmed
325
+ matching: strict
326
+ format:
327
+ pattern: "L9999"
328
+ regex: '\A[A-Z]\d{4}\z'
329
+ serial_basis: locator-unconfirmed
330
+ charset: { notes: "one letter then four numerals; reported A0001 onward. The predecessor arrangement was five numerals (12345, running to 99999), which exhausted and was re-based with a letter prefix in 2007 — the same exhaust-and-reprefix move Arkansas made on its passenger series in 2021." }
331
+ design:
332
+ plate: { w: 12, h: 6, unit: in }
333
+ plate_dimension_basis: locator-unconfirmed
334
+ background: { finish: retroreflective }
335
+ colour_note: "reported black on white with an antique-car graphic at left. No hex asserted."
336
+ graphic: { present: true, rendered: placeholder, description: "antique car, at left (locator description; not reproduced)" }
337
+ emblem: { present: true, rendered: placeholder }
338
+ eligibility:
339
+ text: >-
340
+ DFA's own catalogue entry, verbatim: "For historical or special interest
341
+ vehicles or any vehicle that is THIRTY (30) YEARS OLD OR OLDER, which is
342
+ essentially unaltered from the original manufacturers specifications."
343
+ DFA adds that "Certain modifications are permitted if they are
344
+ characteristic of the approximate era to which the vehicle belongs or
345
+ considered to be safety related (brakes, seal beam headlights, seat
346
+ belts, etc.)."
347
+ threshold_kind: rolling
348
+ threshold_note: >-
349
+ A ROLLING thirty-year threshold — eligibility moves every year — which
350
+ puts Arkansas with Florida's Antique plate (rolling 30 years, § 320.086(2)(a))
351
+ and against Florida's Horseless Carriage plate (fixed model year 1945 or
352
+ earlier). Texas's § 504.501 Classic is rolling 25. Three of the four
353
+ southcentral states therefore use rolling age thresholds and only the
354
+ fixed-cutoff kind is absent here. The distinction is operationally real:
355
+ a rolling threshold silently re-qualifies vehicles every 1 January and
356
+ must be re-audited; a fixed cutoff never changes.
357
+ plate_category: "DFA classifies it under the catalogue's 'Special Interest' plate category"
358
+ basis: authority-stated
359
+ superseded_variants:
360
+ - "the 1957-2007 five-numeral antique plate is reported NO LONGER ISSUED BUT STILL VALID — a dead series lawfully on the road, exactly the case PRD-PLATES's `ended: true` + `year_end_min:` semantics exist for. It is not given its own entry here because the only source for its own format is a locator and because L2 scope is the current series plus one back per class."
361
+ - "a separate ANTIQUE MOTORCYCLE plate is reported with a three-numeral-plus-letter arrangement (123A) on an 'ARK. M CYCLE / ANTIQUE' legend — recorded here rather than as a series for the same reason."
362
+ region_encoding: none
363
+ sources:
364
+ - "https://www.dfa.arkansas.gov/specialty-plates/antique-vehicle-license-plate-current/ # DFA's own catalogue entry for the CURRENT antique vehicle plate: the rolling 30-year eligibility rule, the essentially-unaltered condition, the era-characteristic and safety-modification allowances, the Affidavit for License for an Antique Vehicle, and the 'Special Interest' plate category"
365
+ - "https://www.dfa.arkansas.gov/specialty-plates/antique-vehicle-license-plate-valid-no-longer-issued/ # DFA's own catalogue entry titled 'Antique Vehicle License Plate - Valid - No Longer Issued' — the authority itself distinguishing a VALID but DISCONTINUED series, which is direct support for the ended-but-displayed modelling above"
366
+ - "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Arkansas # LOCATOR ONLY: the A1234 arrangement from 2007, the preceding 12345 arrangement running 1957-2007, the antique-car graphic, and the separate antique-motorcycle plate"
367
+ notes: >-
368
+ ARKANSAS ANTIQUE. The genuinely valuable thing here is not the format but
369
+ the DFA catalogue's own two-entry treatment: the department publishes
370
+ "Antique Vehicle License Plate - Current" and "Antique Vehicle License
371
+ Plate - Valid - No Longer Issued" as separate catalogue items. That is an
372
+ issuing authority explicitly modelling a discontinued-but-still-valid
373
+ series in its own public catalogue — the same distinction PRD-PLATES draws
374
+ with `ended: true`, arrived at independently by a state DMV, and the
375
+ strongest available evidence that the schema's period semantics match how
376
+ registrars actually think.
377
+
378
+ # =========================================================================
379
+ # SPECIALTY — THE PROGRAM INDEX ONLY, per PRD-PLATES §2.5. Arkansas gives the
380
+ # cleanest COUNT in this group, from the department's own content API.
381
+ # =========================================================================
382
+ - id: us-ar-specialty-index
383
+ class: specialty
384
+ categories: [car, van, truck, motorcycle]
385
+ period: { start: 2021 }
386
+ period_evidence: instrument-in-force-upper-bound
387
+ matching: strict
388
+ format:
389
+ pattern: "LLL 99L"
390
+ regex: '\A[A-Z]{3} ?\d{2}[A-Z]\z'
391
+ serial_basis: locator-unconfirmed
392
+ charset: { notes: "specialty plates draw from the ordinary passenger allocation unless personalized — the locator records for several classes (Ambulance, School Vehicle) that the serial is 'Taken from passenger allocation' and shows both the 123 ABC and ABC 12D arrangements on them, which is consistent with specialty designs riding the standard sequence across the 2021 format change." }
393
+ design:
394
+ plate: { w: 12, h: 6, unit: in }
395
+ background: { finish: retroreflective }
396
+ note: "one design per authorised program; individual designs are L4 scope (PRD-PLATES §2.5) and none is described here"
397
+ emblem: { present: true, rendered: placeholder }
398
+ program_index:
399
+ count_official: 131
400
+ count_basis: authority-enumerated
401
+ count_method: >-
402
+ COUNTED FROM THE DEPARTMENT'S OWN CONTENT API, which is the most solid
403
+ specialty count in this group. dfa.arkansas.gov runs its specialty
404
+ catalogue as a `specialty-plates` content type; a request to
405
+ /wp-json/wp/v2/specialty-plates returns an X-WP-Total header of 131
406
+ (fetched 2026-08-02). That is DFA's own enumeration of its own
407
+ catalogue, not a third-party tally.
408
+ count_caveats:
409
+ - "the total counts CATALOGUE ENTRIES, not currently-issuable programs: at least one entry is 'Antique Vehicle License Plate - Valid - No Longer Issued', i.e. a discontinued design the department still documents"
410
+ - "at least two apparent DUPLICATE pairs are visible in the first page alone ('Arkansas Sheriffs' Association' twice, 'Arkansas State Lodge Fraternal Order of Police' twice with and without the words 'License Plate'), so 131 is an upper bound on distinct programs"
411
+ - "the catalogue mixes true optional-design programs with administrative classes (Ambulance, Amateur Radio, Apportioned Truck, Transporter), so it is a plate-type catalogue rather than a specialty-program catalogue in the Florida sense"
412
+ official_list_url: "https://www.dfa.arkansas.gov/office/motor-vehicle/specialty-plates-placards/"
413
+ structured_endpoint: "https://www.dfa.arkansas.gov/wp-json/wp/v2/specialty-plates # a genuinely machine-readable official catalogue with per-plate pages — rarer than it should be, and worth snapshotting periodically the way FLHSMV's monthly report is"
414
+ region_encoding: none
415
+ sources:
416
+ - "https://www.dfa.arkansas.gov/office/motor-vehicle/specialty-plates-placards/ # DFA's official specialty plates and placards catalogue"
417
+ - "https://www.dfa.arkansas.gov/wp-json/wp/v2/specialty-plates # the same catalogue as structured data; X-WP-Total: 131 at fetch time 2026-08-02 — the count claim"
418
+ - "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Arkansas # LOCATOR ONLY: that specialty classes such as Ambulance and School Vehicle take their serials 'from passenger allocation' and therefore show both passenger arrangements"
419
+ notes: >-
420
+ THE ARKANSAS SPECIALTY INDEX. Arkansas gives the best-structured specialty
421
+ catalogue of the four states here and the worst statutory access, which is
422
+ an instructive pairing: the department's WordPress content API happily
423
+ hands over a complete, paginated, per-plate catalogue with a total in an
424
+ HTTP header, while the Code that authorises every one of those plates sits
425
+ behind a commercial subscription. The count is reported with its three
426
+ caveats rather than as a round number, because 131 is an upper bound on
427
+ distinct live programs and saying so costs nothing.