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,471 @@
1
+ # plates/us-tn.yml — Tennessee (PRD-PLATES gate L2, group southeast-b).
2
+ #
3
+ # THE FINDING THAT MAKES TENNESSEE WORTH MODELLING CAREFULLY: Tennessee's two
4
+ # standard-issue options are not a colour variant of one another. The plain
5
+ # standard plate runs ABC-1234 and the "In God We Trust" option runs 123-ABCD —
6
+ # THREE LETTERS THEN FOUR NUMERALS versus THREE NUMERALS THEN FOUR LETTERS. The
7
+ # arrangement itself tells the two apart, so a parse API can identify which
8
+ # standard option a Tennessee plate is from the string alone, with no image and
9
+ # no lookup. Under PRD-PLATES §2.3 that is two SERIES, not one series with a
10
+ # flag, and this file models it that way. Contrast Kentucky in this same group,
11
+ # which offers the identical pair of options and draws BOTH from one serial pool,
12
+ # so a Kentucky serial cannot distinguish them at all. Same policy, opposite
13
+ # implementation, opposite consequence for the parse layer — that contrast is the
14
+ # single most useful thing in this group's output.
15
+ #
16
+ # SOURCING RULE APPLIED HERE, AND ITS LIMIT: PRD-PLATES §4 prefers the statute.
17
+ # Tennessee Code Annotated is published exclusively through a LexisNexis portal
18
+ # that serves a JavaScript shell, and Justia/FindLaw/Casetext all refuse a plain
19
+ # fetch. But Tennessee publishes two things that are better than a brochure and
20
+ # were both obtained: the SESSION LAWS in full (publications.tnsosfiles.com serves
21
+ # public chapters as PDFs), and a Department of Revenue standard-plate page plus a
22
+ # Governor's-office release that both DESCRIBE the operative statute in terms. So
23
+ # the legend rule, the redesign cadence and the current-design date below are all
24
+ # state-government primary, and the code sections themselves are a named gap.
25
+ jurisdiction: us-tn
26
+ authority:
27
+ name: Tennessee Department of Revenue, Vehicle Services Division
28
+ url: "https://www.tn.gov/revenue/title-and-registration/license-plates.html"
29
+ binding: vehicle
30
+ statute_edition: >-
31
+ TENNESSEE CODE ANNOTATED NOT DIRECTLY OBTAINED — published through LexisNexis,
32
+ which returns a JavaScript shell; every mirror attempted returned 403/410. What
33
+ WAS obtained is better than a paraphrase and worse than the code: Public Chapter
34
+ No. 250 of the 113th General Assembly (Senate Bill 142, substituted for House
35
+ Bill 137), fetched in full from the Secretary of State's own acts server, which
36
+ amends Title 55, Chapter 4; plus two state-government pages that state the
37
+ contents of the governing statute in terms. Title 55, Chapter 4, Part 1 —
38
+ the plate-design sections proper — is a recorded gap.
39
+
40
+ # ---------------------------------------------------------------------------
41
+ # artwork_risk — required per jurisdiction by PRD-PLATES §4.
42
+ # ---------------------------------------------------------------------------
43
+ artwork_risk:
44
+ posture: unresearched
45
+ basis: >-
46
+ Tennessee appears in the pinned dossier only as a NEGATIVE: the dossier's
47
+ per-state table lists Florida, California, North Carolina, New Jersey,
48
+ Massachusetts and Georgia as favourable and New York, Arizona, Washington and
49
+ Pennsylvania as adverse, and records Texas and Delaware as "not established".
50
+ Tennessee is in neither list and no Commons {{PD-TNGov}} tag was located, so it
51
+ falls to the dossier's default: 17 U.S.C. §105 does not reach the states,
52
+ therefore a state plate design is copyrighted unless that state says otherwise.
53
+ No Tennessee statement either way was found. Recorded as unresearched, which is
54
+ the honest label, not as safe.
55
+ design_provenance_complication: >-
56
+ A Tennessee-specific wrinkle worth flagging before any clearance is attempted:
57
+ the current base was selected by PUBLIC VOTE. The Governor's office states that
58
+ "More than 300,000 Tennessee residents cast a vote, with 42% voting for the
59
+ winning design." A design chosen by referendum among candidate designs implies
60
+ candidate designers, and whatever the State's posture toward its own works, the
61
+ chain of title on a competition-selected design is a question in its own right.
62
+ Unresearched.
63
+ emblem_rule: >-
64
+ PRD-PLATES §3 placeholder default applies. Three devices are in scope on the
65
+ current base and all render as placeholders: the OUTLINED STATE MAP containing
66
+ the word TENNESSEE at the top, the STATE FLAG EMBLEM that occupies the serial
67
+ gap, and — on the In God We Trust option — what a locator calls "the state's
68
+ unofficial logo emblem". The flag device is the touchiest: a state flag is
69
+ protected by flag-misuse statutes independent of copyright, and that regime is
70
+ unresearched for Tennessee.
71
+ sources:
72
+ - "https://www.tn.gov/governor/news/2021/10/5/gov--lee-unveils-new-license-plate-design-picked-by-tennesseans.html # Office of the Governor: the design was chosen by statewide public vote, 300,000+ votes cast, 42% for the winner"
73
+ - "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 and the exception list, which does not include Tennessee"
74
+
75
+ us_standards:
76
+ no_federal_mandate: true
77
+ chain: "SAE J686 -> AAMVA License Plate Standard Edition 3 (September 2025) -> voluntary state adoption; recommendations in the declarative present, no enforcement power."
78
+ aamva_edition_3:
79
+ 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."
80
+ jurisdiction_name_layout: "AAMVA §2.1: the jurisdiction name 'appears in the top center location between the bolt holes', jurisdiction characters 0.75-1.0 in. Tennessee complies in an unusual way — TENNESSEE sits at the top centre but INSIDE an outlined state map rather than as free text."
81
+ 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."
82
+ stacked_characters: "AAMVA: stacked characters are part of the official plate number, at most two stacked."
83
+ replacement_cycle: >-
84
+ AAMVA §1.1 recommends a rolling or full replacement cycle not to exceed 7 to
85
+ 10 years. TENNESSEE'S IS EIGHT AND IT IS BUDGET-CONDITIONAL — see
86
+ redesign_cycle below. Eight sits inside AAMVA's range; the conditionality does
87
+ not, and is the more interesting half.
88
+ source: "https://www.aamva.org/getmedia/646bcc8a-219b-47d8-b5cd-726240473163/License-Plate-Standard-Edition-3_September-2025-Update.pdf"
89
+ folklore_caution: >-
90
+ The "1956 agreement" appears in the Tennessee article's lead as it does in every
91
+ state article read for this group, now carrying one citation — Garrish,
92
+ Christopher, "Reconsidering the Standard Plate Size", *Plates* (Automobile
93
+ License Plate Collectors Association), vol. 62 no. 5, October 2016. Not
94
+ obtainable; title implies revision rather than confirmation. Still recorded as
95
+ commonly repeated and unsourced. Tennessee's 12x6 in figure in this file is
96
+ locator-grade and labelled as such.
97
+ aamva_specialty_guidance: "AAMVA also publishes 'Regulation of Specific-Use License Plates Best Practices' (March 2023), which is the relevant standard for a state running 200+ specialty programs. URL pinned in the dossier; not fetched in this pass."
98
+
99
+ # ---------------------------------------------------------------------------
100
+ # Redesign cadence — Tennessee legislates one, and legislates a condition on it.
101
+ # ---------------------------------------------------------------------------
102
+ redesign_cycle:
103
+ years: 8
104
+ conditional: true
105
+ statement: >-
106
+ Office of the Governor, verbatim: "Per Tennessee statute, the plate is
107
+ redesigned every eight years if funds are approved in the General Assembly's
108
+ annual budget."
109
+ note: >-
110
+ THIS IS A DIFFERENT KIND OF CYCLE FROM EVERY OTHER ONE IN THE DATASET. Florida
111
+ legislated a ten-year REPLACEMENT cycle — how long a plate stays on a car.
112
+ Mississippi legislated a five-year TAG cycle. Tennessee legislates a
113
+ REDESIGN cycle — how often the state draws a new plate — and then makes it
114
+ contingent on an annual appropriation. So the Tennessee period boundary is
115
+ predictable in principle and defeasible in fact, and a dataset that hard-codes
116
+ "next base 2030" on the strength of it would be asserting a budget outcome. The
117
+ cadence is recorded; no future boundary is projected from it.
118
+ statute_text_status: "NOT OBTAINED. The Governor's office describes the statute; the section itself is behind LexisNexis. A verifier with TCA access should pin the section number and the exact wording."
119
+ source: "https://www.tn.gov/governor/news/2021/10/5/gov--lee-unveils-new-license-plate-design-picked-by-tennesseans.html"
120
+
121
+ # ---------------------------------------------------------------------------
122
+ # Legend rules — statutory, and stated by the Governor's office in terms.
123
+ # ---------------------------------------------------------------------------
124
+ legend_rules:
125
+ statutory_elements_2021: >-
126
+ Office of the Governor, October 2021, verbatim: "Statute also requires the
127
+ display of 'Tennessee,' 'Volunteer State' and 'TNvacation.com' on the plate, as
128
+ well as county name and expiration year decal locations. Statute provides that
129
+ Tennesseans may select an 'In God We Trust' plate option."
130
+ amended_2023: >-
131
+ Public Chapter 250 (2023) removed the tourism URL. The Department of Revenue, in
132
+ its own words: "In the 2023 legislative session, the General Assembly passed
133
+ legislation that makes minor changes to the standard license plate. The changes
134
+ remove the words www.tnvacation.com from both the standard and In God We Trust
135
+ license plates. For the In God We Trust plate option, the words 'In God We
136
+ Trust' will be located where www.tnvacation.com currently appears."
137
+ legislated_url_note: >-
138
+ WORTH PAUSING ON: Tennessee is the only jurisdiction in this dataset whose
139
+ LEGISLATURE put a MARKETING URL on the plate by statute, and then took it off by
140
+ statute two years later. It is a clean demonstration of why plate legends belong
141
+ in the period-disciplined layer rather than in a static design record — the
142
+ legend changed without the base changing, and the two must be separable.
143
+ clerk_default_rule: >-
144
+ A rule with real dataset consequences, from the Department of Revenue: "the
145
+ clerks are required to ask each customer if they prefer the In God We Trust plate
146
+ or the plate without the In God We Trust language. If the customer does not
147
+ indicate a preference, the customer should be issued the In God We Trust plate."
148
+ The DEFAULT option is In God We Trust. Any consumer estimating the relative
149
+ population of the two Tennessee standard series must know that the split is not
150
+ a free choice between equals.
151
+ sources:
152
+ - "https://www.tn.gov/governor/news/2021/10/5/gov--lee-unveils-new-license-plate-design-picked-by-tennesseans.html # the statutory legend list as it stood in 2021, the eight-year conditional redesign cycle, and the January 3, 2022 availability date"
153
+ - "https://www.tn.gov/revenue/title-and-registration/license-plates/additional-license-plate-information/standard-plate-faq.html # TN Dept of Revenue Standard Plate FAQ: the Public Chapter 250 changes, the clerk-must-ask rule and the In God We Trust default, and the January 1, 2024 availability date"
154
+ - "https://publications.tnsosfiles.com/acts/113/pub/pc0250.pdf # Public Chapter No. 250, 113th General Assembly (SB 142 / HB 137), 'AN ACT to amend Tennessee Code Annotated, Title 55, Chapter 4, relative to license plates' — fetched in full from the Secretary of State's acts server"
155
+
156
+ display_rules:
157
+ default_reported: "ONE plate, rear only, since 1977"
158
+ evidence: "LOCATOR-GRADE. No Tennessee display statute was obtained. Recorded as an open claim."
159
+ sources:
160
+ - "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Tennessee # LOCATOR ONLY: rear plates only since 1977"
161
+
162
+ series:
163
+
164
+ # =========================================================================
165
+ # CURRENT STANDARD — the plain option. Three letters, four numerals.
166
+ # =========================================================================
167
+ - id: us-tn-standard-2024
168
+ class: standard
169
+ categories: [car, van, truck]
170
+ period: { start: 2024 }
171
+ period_evidence: agency-stated-date
172
+ matching: strict
173
+ format:
174
+ pattern: "LLL 9999"
175
+ regex: '\A[A-Z]{3} ?\d{4}\z'
176
+ charset:
177
+ notes: >-
178
+ No alphabet restriction is sourced FOR THIS SERIES. Tennessee has
179
+ demonstrably excluded characters in the past — a locator records that
180
+ vowels were not used in the older 123-ABC and ABC-123 formats, and that
181
+ I, O and Q were not used in the A12-34B, 1A2-3B4 and 12A-B34 formats — and
182
+ the reported serial range for the current base begins at BBB-0001 rather
183
+ than AAA-0001, which is consistent with a vowel exclusion continuing. That
184
+ is a suggestive pattern, not a source, so NO `regex_strict` is offered and
185
+ the inference is recorded here instead of encoded there.
186
+ separator_note: >-
187
+ THE SEPARATOR IS THE STATE FLAG EMBLEM. On the 2022-and-later base the gap
188
+ between the letter and numeral groups is occupied by a screened flag device,
189
+ not by a printed glyph. Per plates/_meta/separators.yml §4 an emblem between
190
+ serial groups is a design element carried in `design.emblem`, never a serial
191
+ character and never strippable-as-punctuation. The regex spells the position
192
+ as an optional SPACE, the honest printed form of a gap. Collector sources
193
+ write it as a hyphen (ABC-1234) and a separator-forgiving consumer will
194
+ canonicalise both to ABC1234 by construction, which is the whole point of
195
+ the §2.6 contract. Mississippi's magnolia does exactly the same job in the
196
+ same group.
197
+ pattern_note: >-
198
+ `matching: strict`: the regex lies inside what Tennessee issues and a match
199
+ is a real well-formedness claim. No `regex_statutory` twin, because no
200
+ Tennessee instrument stating an outer character cap was obtained — Florida's
201
+ seven-character statutory ceiling has no Tennessee counterpart in evidence.
202
+ design:
203
+ plate: { w: 12, h: 6, unit: in, hex_basis_note: "locator-grade; no Tennessee instrument stating it was obtained" }
204
+ material: "aluminium (locator)"
205
+ background: { color: "#00205B", finish: retroreflective, hex_basis: observed }
206
+ foreground: "#FFFFFF"
207
+ colour_note: >-
208
+ Both hexes are `observed` approximations of the described "screened white
209
+ serial on reflective blue plate" and are NOT sourced to any Tennessee
210
+ instrument. No colour specification was located. Treat as unverified.
211
+ legend_top: "TENNESSEE"
212
+ legend_top_note: "screened in white INSIDE an outlined state map at the top centre — an unusual satisfaction of AAMVA §2.1's top-centre jurisdiction-name rule"
213
+ legend_corner: "THE VOLUNTEER STATE (top left, to the left of the state map)"
214
+ legend_bottom: "<county name>, on a WHITE STICKER"
215
+ county_sticker_note: >-
216
+ Tennessee puts the county on a REMOVABLE STICKER, not in the metal. So the
217
+ county legend is not a property of the plate at all — it is a property of the
218
+ current registration, and it can change without the plate changing. Kentucky
219
+ does the same. Mississippi, in this same group, embosses the county into the
220
+ plate and therefore cannot. Three neighbouring states, three different
221
+ answers to where the county lives, and only the Mississippi answer binds the
222
+ county to the metal.
223
+ emblem: { present: true, rendered: placeholder, description: "state flag device occupying the serial gap; outlined state map containing the wordmark at top — see format.separator_note and artwork_risk.emblem_rule" }
224
+ rear_differs: false
225
+ sources:
226
+ - "https://www.tn.gov/revenue/title-and-registration/license-plates/additional-license-plate-information/standard-plate-faq.html # TN Dept of Revenue: 'The new design will be available beginning January 1, 2024, OR upon depletion of the county's inventory of the current blue plate'; the Public Chapter 250 changes; the new design is for new registrations only, not renewals; the eligibility rules for a replacement"
227
+ - "https://publications.tnsosfiles.com/acts/113/pub/pc0250.pdf # Public Chapter No. 250 (2023), the amending instrument itself"
228
+ - "https://www.tn.gov/governor/news/2021/10/5/gov--lee-unveils-new-license-plate-design-picked-by-tennesseans.html # the blue base's own origin, the statutory legend list, and the eight-year conditional redesign cycle"
229
+ - "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Tennessee # LOCATOR ONLY (PRD-PLATES §4): the ABC-1234 arrangement, the flag-emblem separator, blue/white colours, the outlined state map, the white county sticker, the reported BRC-8001 to BVP-2252 range as of December 2025, and a November 16, 2023 start date that DISAGREES with the Department's own January 1, 2024 — see notes"
230
+ notes: >-
231
+ TENNESSEE STANDARD ISSUE, PLAIN OPTION. A RECORDED DISAGREEMENT ON THE START
232
+ DATE, NOT AN AVERAGE OF ONE (PRD-PLATES §5.3): the Department of Revenue says
233
+ the redesigned plate becomes available "beginning January 1, 2024, OR upon
234
+ depletion of the county's inventory of the current blue plate", while a locator
235
+ dates the change to November 16, 2023. Both dates can be literally true —
236
+ counties with exhausted stock could begin earlier than the statewide date — and
237
+ the two are not reconciled here. `start: 2024` is taken because it is the
238
+ administering department's own statement; the November 2023 claim is recorded
239
+ in the source line and nowhere else.
240
+ THE ROLLOUT IS UNUSUALLY SLOW BY DESIGN, and this matters for anyone reasoning
241
+ about how many 2024-design plates exist. The Department is explicit that the new
242
+ plate is issued for NEW REGISTRATIONS ONLY and "will not be issued upon renewal",
243
+ with replacement otherwise limited to switching between the two legend options or
244
+ to a lost, stolen, destroyed, mutilated or illegible plate. So the 2022 and 2024
245
+ designs will coexist on Tennessee roads for many years — parallel issuance in the
246
+ §2.2 sense, made explicit by statute rather than by old stock running out.
247
+
248
+ # =========================================================================
249
+ # CURRENT STANDARD — the In God We Trust option. THE ARRANGEMENT IS REVERSED.
250
+ # =========================================================================
251
+ - id: us-tn-standard-igwt-2024
252
+ class: standard
253
+ categories: [car, van, truck]
254
+ period: { start: 2024 }
255
+ period_evidence: agency-stated-date
256
+ matching: strict
257
+ format:
258
+ pattern: "999 LLLL"
259
+ regex: '\A\d{3} ?[A-Z]{4}\z'
260
+ charset: { notes: "no sourced alphabet restriction; see us-tn-standard-2024 for the unencoded vowel-exclusion inference, which applies here too — the reported range begins 001-BMDN" }
261
+ pattern_note: >-
262
+ THREE NUMERALS THEN FOUR LETTERS, the mirror image of the plain option's
263
+ three letters then four numerals. This is the whole reason the two options
264
+ are separate series: the serial ALONE identifies which Tennessee standard
265
+ option a plate is, with no image, no lookup and no ambiguity. Very few
266
+ jurisdictions hand a parse API a discriminator this clean, and no competing
267
+ dataset carries it.
268
+ design:
269
+ plate: { w: 12, h: 6, unit: in }
270
+ background: { color: "#00205B", finish: retroreflective, hex_basis: observed }
271
+ foreground: "#FFFFFF"
272
+ legend_top: "TENNESSEE"
273
+ legend_corner: "THE VOLUNTEER STATE"
274
+ legend_extra: "IN GOD WE TRUST, screened between the serial and the county sticker — the position vacated by www.tnvacation.com when Public Chapter 250 removed it"
275
+ legend_bottom: "<county name>, on a white sticker"
276
+ emblem: { present: true, rendered: placeholder }
277
+ rear_differs: false
278
+ issuance_default: >-
279
+ THE DEFAULT OPTION. Per the Department of Revenue, clerks must ask each customer
280
+ which they prefer, and "If the customer does not indicate a preference, the
281
+ customer should be issued the In God We Trust plate." This series is what a
282
+ Tennessean gets by not choosing.
283
+ sources:
284
+ - "https://www.tn.gov/revenue/title-and-registration/license-plates/additional-license-plate-information/standard-plate-faq.html # TN Dept of Revenue: the In God We Trust option, the relocation of the legend into the vacated tnvacation.com position, the clerk-must-ask rule and the default, and the January 1, 2024 availability date"
285
+ - "https://www.tn.gov/governor/news/2021/10/5/gov--lee-unveils-new-license-plate-design-picked-by-tennesseans.html # 'Statute provides that Tennesseans may select an In God We Trust plate option' — the option is legislated, not administrative"
286
+ - "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Tennessee # LOCATOR ONLY: the 123-ABCD arrangement and the reported 001-BMDN onward range as of July 2026"
287
+ notes: >-
288
+ THE IN GOD WE TRUST STANDARD OPTION, 2024 design. Its own series on two of the
289
+ three §2.3 tests at once — FORMAT differs (reversed arrangement) and DESIGN
290
+ differs (the added legend) — which is as unambiguous as that test ever gets.
291
+ THE CROSS-STATE POINT, and the reason this entry is the hinge of the group:
292
+ Kentucky offers the same statutory In God We Trust option on the same base as
293
+ its plain plate, and draws the serials for both from ONE allocation. So in
294
+ Tennessee the serial identifies the option and in Kentucky it cannot, although
295
+ the policies are twins. A dataset that modelled "In God We Trust" as a flag
296
+ rather than as a series would have erased a real, usable discriminator in one
297
+ state to accommodate its absence in the other.
298
+
299
+ # =========================================================================
300
+ # ONE SERIES BACK — the 2022 blue base with the legislated tourism URL.
301
+ # =========================================================================
302
+ - id: us-tn-standard-2022
303
+ class: standard
304
+ categories: [car, van, truck]
305
+ period: { start: 2022, end: 2024 }
306
+ period_evidence: agency-stated-date
307
+ matching: strict
308
+ format:
309
+ pattern: "LLL 9999"
310
+ regex: '\A[A-Z]{3} ?\d{4}\z'
311
+ charset: { notes: "same arrangement as its successor; the 2023 amendment changed the LEGEND, not the serial. Reported range BBB-0001 to BRC-2189, with BRC-2190 to BRC-8000 never issued" }
312
+ design:
313
+ plate: { w: 12, h: 6, unit: in }
314
+ background: { color: "#00205B", finish: retroreflective, hex_basis: observed }
315
+ foreground: "#FFFFFF"
316
+ legend_top: "TENNESSEE"
317
+ legend_corner: "THE VOLUNTEER STATE"
318
+ legend_extra: "TNVACATION.COM, screened in white between the serial and the county sticker — statutorily required at the time and statutorily removed in 2023"
319
+ legend_bottom: "<county name>, on a white sticker"
320
+ emblem: { present: true, rendered: placeholder }
321
+ sources:
322
+ - "https://www.tn.gov/governor/news/2021/10/5/gov--lee-unveils-new-license-plate-design-picked-by-tennesseans.html # Office of the Governor: 'New plates will be available online and in-person beginning January 3, 2022'; up to 100,000 plates per week produced for initial inventory; the design was chosen by public vote; 'This new license plate design will replace the current plate that launched in 2006 with modifications in 2011, 2016 and 2017'"
323
+ - "https://www.tn.gov/revenue/title-and-registration/license-plates/additional-license-plate-information/standard-plate-faq.html # the Department's own account of what the 2023 amendment changed, which is what closes this series"
324
+ - "https://publications.tnsosfiles.com/acts/113/pub/pc0250.pdf # Public Chapter No. 250 (2023), the instrument that ended it"
325
+ - "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Tennessee # LOCATOR ONLY: the BBB-0001 to BRC-2189 range and the unissued BRC-2190 to BRC-8000 gap"
326
+ notes: >-
327
+ THE 2022 BLUE BASE, plain option — the predecessor L2 asks for, and the better
328
+ documented of the two Tennessee generations. Its start is genuinely
329
+ well-sourced: the Governor's office named January 3, 2022 in a dated release
330
+ four months ahead of it, and stated the production rate. Its END is a
331
+ legend amendment rather than a redesign, which is why the base looks identical
332
+ across the boundary and why the serial arrangement is unchanged.
333
+ THE UNISSUED BLOCK IS THE INTERESTING DETAIL: a locator records that serials
334
+ BRC-2190 through BRC-8000 were never issued, the 2024 design resuming at
335
+ BRC-8001. A skipped block at a design boundary is exactly the kind of fact that
336
+ makes a naive range-based era inference wrong, and it is recorded for that
337
+ reason even though it is locator-grade.
338
+
339
+ - id: us-tn-standard-igwt-2022
340
+ class: standard
341
+ categories: [car, van, truck]
342
+ period: { start: 2022, end: 2024 }
343
+ period_evidence: agency-stated-date
344
+ matching: strict
345
+ format:
346
+ pattern: "999 LLLL"
347
+ regex: '\A\d{3} ?[A-Z]{4}\z'
348
+ charset: { notes: "reported range 001-BBBB to 999-BMDM" }
349
+ design:
350
+ plate: { w: 12, h: 6, unit: in }
351
+ background: { color: "#00205B", finish: retroreflective, hex_basis: observed }
352
+ foreground: "#FFFFFF"
353
+ legend_extra: "IN GOD WE TRUST curved around a centre emblem, PLUS TNVACATION.COM between serial and county sticker — this base carried both, which is why the 2023 amendment had somewhere to move the legend to"
354
+ legend_bottom: "<county name>, on a white sticker"
355
+ emblem: { present: true, rendered: placeholder }
356
+ sources:
357
+ - "https://www.tn.gov/revenue/title-and-registration/license-plates/additional-license-plate-information/standard-plate-faq.html # the Department's description of what changed for the In God We Trust option in 2023: the legend moved into the position tnvacation.com had occupied"
358
+ - "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Tennessee # LOCATOR ONLY: the 123-ABCD arrangement on this base and the 001-BBBB to 999-BMDM range"
359
+ notes: >-
360
+ THE 2022 IN GOD WE TRUST OPTION. Recorded as its own series for the same
361
+ reasons as its 2024 successor — reversed arrangement plus distinct legend — and
362
+ recorded at all because the L2 "one series back" requirement applies to each
363
+ standard option separately when the options are separate series. It also
364
+ documents the mechanism of the 2023 change concretely: this base carried BOTH
365
+ the religious legend and the tourism URL, so removing the URL left a hole the
366
+ legend then moved into, which is why the two 2024 options differ from their
367
+ 2022 twins in legend POSITION as well as in content.
368
+
369
+ # =========================================================================
370
+ # SPECIALTY — THE PROGRAM INDEX, per PRD-PLATES §2.5.
371
+ # =========================================================================
372
+ - id: us-tn-specialty-index
373
+ class: specialty
374
+ categories: [car, van, truck, motorcycle]
375
+ period: { start: 2024 }
376
+ period_evidence: instrument-in-force-upper-bound
377
+ matching: recall-only
378
+ format:
379
+ pattern: "999999"
380
+ regex: '\A[A-Z0-9]{1,7}\z'
381
+ charset: { notes: "no Tennessee character cap was obtained; the seven-character bound is a regional convention and is NOT sourced, which is why this series is recall-only" }
382
+ pattern_note: "`matching: recall-only` (§2.7): one entry stands for 200+ programs whose individual arrangements are out of scope at this gate. A match is a shape hit. 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"
388
+ program_index:
389
+ count_reported: "over 200"
390
+ count_source_note: >-
391
+ The figure comes from tnspecialtyplates.org, run by the TENNESSEE ARTS
392
+ COMMISSION — a state agency, not a hobbyist. It is treated as agency-adjacent
393
+ rather than as a locator, but the page itself was not fetched in this pass
394
+ (the count reached us through the Wikipedia citation), so it is recorded as
395
+ REPORTED and the URL is pinned for the verifier to close.
396
+ revenue_earmark_structure: >-
397
+ THE MOST STRUCTURALLY UNUSUAL SPECIALTY PROGRAM IN THIS GROUP, and it is in
398
+ statute. Public Chapter 250 (2023) rewrote Title 55, Chapter 4, Part 3 and
399
+ sets the split verbatim: after the department's costs, "Fifty percent (50%) of
400
+ the funds must be allocated to the nonprofit organization or state agency or
401
+ fund earmarked to receive the funds"; "Forty percent (40%) of the funds must
402
+ be allocated to the Tennessee arts commission"; and "Ten percent (10%) of the
403
+ funds must be allocated to the state highway fund." Tennessee funds its ARTS
404
+ COMMISSION from licence plates, at forty cents on the dollar, which is why the
405
+ arts commission — not the revenue department — runs the public specialty
406
+ catalogue.
407
+ arts_grant_geography: >-
408
+ The same chapter constrains where the money lands: of the arts commission's
409
+ share, "One-third (1/3) of the funds must be distributed to qualifying arts
410
+ organizations or events in urban counties" and "Two-thirds (2/3) ... in rural
411
+ counties", with up to half of the commission's allocation spendable on other
412
+ grants and activities first.
413
+ official_department_url: "https://www.tn.gov/revenue/title-and-registration/license-plates/available-license-plates.html"
414
+ official_arts_commission_url: "https://tnspecialtyplates.org/purchase-a-specialty-plate/"
415
+ new_plate_process_url: "https://www.tn.gov/revenue/title-and-registration/license-plates/additional-license-plate-information/how-to-introduce-a-new-specialty-plate.html"
416
+ pipeline_url: "https://www.tn.gov/revenue/title-and-registration/license-plates/additional-license-plate-information/proposed-specialty-plates-plates-under-construction.html"
417
+ pipeline_note: >-
418
+ Tennessee publishes a "Proposed Specialty Plates or Plates Under Construction"
419
+ page — a FORWARD-LOOKING index of plates not yet issued. Alabama's dated memo
420
+ series is the closest equivalent found in this group. Both are worth a
421
+ scheduled capture: they are the only public evidence of specialty churn before
422
+ it happens, and neither is archived by its publisher.
423
+ surrender_url: "https://www.tn.gov/revenue/title-and-registration/license-plates/additional-license-plate-information/surrendering-a-plate.html"
424
+ region_encoding: none
425
+ sources:
426
+ - "https://publications.tnsosfiles.com/acts/113/pub/pc0250.pdf # Public Chapter No. 250, 113th General Assembly: the 50/40/10 revenue split for new specialty earmarked plates, the one-third urban / two-thirds rural grant constraint, and the legislative-intent limits on who may receive earmarked funds"
427
+ - "https://www.tn.gov/revenue/title-and-registration/license-plates/available-license-plates.html # the Department's own specialty catalogue (a JavaScript gallery; no list extractable without a rendering browser)"
428
+ - "https://www.tn.gov/revenue/title-and-registration/license-plates/additional-license-plate-information.html # the Department's index of how to introduce a plate, plates under construction, and surrender"
429
+ - "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Tennessee # LOCATOR ONLY: 'Tennessee offers over 200 optional license plates', attributed to the Tennessee Arts Commission's specialty-plate site"
430
+ notes: >-
431
+ THE TENNESSEE SPECIALTY INDEX — one entry standing for the program, per §2.5. The
432
+ count is the weakest thing in it and the STATUTE is the strongest: Public Chapter
433
+ 250 gives the actual revenue mechanics verbatim from the session law, which is a
434
+ PD edict of government and the best possible source. The finding worth carrying
435
+ forward is institutional rather than numeric — in Tennessee the specialty program
436
+ is an arts-funding instrument that happens to be attached to vehicles, the arts
437
+ commission takes forty percent of it, and consequently the authoritative public
438
+ catalogue lives at the arts commission rather than at the revenue department.
439
+ Any future pass that goes looking for Tennessee specialty data at tn.gov/revenue
440
+ alone will find the thinner half of it.
441
+
442
+ # =========================================================================
443
+ # CLASSES NOT SPECCED — recorded so the gap is visible, not implied.
444
+ # =========================================================================
445
+ - id: us-tn-motorcycle
446
+ class: motorcycle
447
+ categories: [motorcycle]
448
+ period: { start: 2024 }
449
+ period_evidence: instrument-in-force-upper-bound
450
+ matching: recall-only
451
+ format:
452
+ pattern: "999999"
453
+ regex: '\A[A-Z0-9]+\z'
454
+ charset: { notes: "NO WIDTH CLAIM IS MADE. The quantifier is unbounded precisely because no Tennessee motorcycle serial grammar was obtained from any source, agency or locator, in this pass" }
455
+ pattern_note: "`matching: recall-only` (§2.7) and deliberately so: this regex is wider than anything Tennessee issues and a match means only 'this string is alphanumeric'. It exists to record that Tennessee serializes motorcycles separately, not to validate one. No `regex_strict`, per §2.7."
456
+ design:
457
+ plate: { w: 7, h: 4, unit: in, hex_basis_note: "regional convention, NOT sourced for Tennessee" }
458
+ background: { finish: retroreflective }
459
+ emblem: { present: true, rendered: placeholder }
460
+ region_encoding: none
461
+ sources:
462
+ - "https://www.tn.gov/revenue/title-and-registration/license-plates.html # the Department's plate index, which establishes that Tennessee issues motorcycle plates as a distinct type"
463
+ notes: >-
464
+ TENNESSEE MOTORCYCLE PLATES — AN HONEST STUB, AND LABELLED AS ONE. It is included
465
+ rather than omitted because omission would read as "Tennessee does not separately
466
+ serialize motorcycles", which is false, whereas a recall-only entry with an
467
+ unbounded regex says exactly what is known: the class exists, the grammar was not
468
+ obtained. `matching: recall-only` is doing real work here — under §2.7 a consumer
469
+ reading this series knows without inferring that a match is not a validity claim.
470
+ This is the shape any state's under-researched class should take in this dataset
471
+ rather than a plausible-looking invented pattern.