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,770 @@
1
+ # plates/us-ky.yml — Kentucky (PRD-PLATES gate L2, group southeast-b).
2
+ #
3
+ # KENTUCKY IS THE ONLY STATE IN THIS GROUP WHOSE PRIMARY LAW WAS ACTUALLY
4
+ # OBTAINED, and the difference is visible on every line below. The Legislative
5
+ # Research Commission serves the Kentucky Revised Statutes and the Kentucky
6
+ # Administrative Regulations as fetchable documents — the statute endpoint returns
7
+ # a PDF of the section, complete with its effective date and its full amendment
8
+ # history back to the 1942 recodification. So where Alabama, Mississippi and
9
+ # Tennessee in this group are documented from departmental instruments with the
10
+ # statutory layer marked as a gap, Kentucky's design rule, display rule, historic
11
+ # regime and personalized regime are all quoted from the statute itself, which is
12
+ # a PD edict of government and the top of the PRD-PLATES §4 hierarchy.
13
+ #
14
+ # THE FINDING WORTH READING THE FILE FOR: Kentucky offers exactly the same pair of
15
+ # standard options as Tennessee — a plain plate and an "In God We Trust" plate,
16
+ # both statutory — and implements the pair in the opposite way. Tennessee gives the
17
+ # two options DIFFERENT serial arrangements, so the string identifies the option.
18
+ # Kentucky draws both from ONE allocation, so the string identifies nothing. Same
19
+ # policy, opposite consequence for a parse API, and the two files should be read
20
+ # together.
21
+ #
22
+ # REGEX FORM (PRD-PLATES §2.6): the current Kentucky serial is printed WITHOUT a
23
+ # separator — the base was redesigned in 2020 so that, in a locator's words, the
24
+ # "serial is not separated in middle, as with past designs". The regexes below
25
+ # therefore spell no separator in the standard series, and spell an optional one
26
+ # only in the personalized series, where the agency states that a space or dash may
27
+ # be part of the requested combination.
28
+ jurisdiction: us-ky
29
+ authority:
30
+ name: Kentucky Transportation Cabinet (KYTC), Division of Motor Vehicle Licensing
31
+ url: "https://drive.ky.gov/Vehicles/Pages/License-Plates.aspx"
32
+ binding: vehicle
33
+ statute_edition: >-
34
+ Kentucky Revised Statutes as served by the Legislative Research Commission,
35
+ read at the versions effective July 15, 2026 (KRS 186.240 and 186.170),
36
+ January 1, 2025 (KRS 186.174) and June 20, 2005 (KRS 186.043); Kentucky
37
+ Administrative Regulations Title 601 Chapter 9 read at its certified 2026
38
+ versions. Each section's own effective date and amendment history is quoted in
39
+ the series that relies on it, which is why Kentucky's period claims are the
40
+ best-instrumented in this group.
41
+ statute_ip_note: >-
42
+ RECORDED BECAUSE IT IS EVIDENCE, NOT BECAUSE IT BINDS: the LRC's statute and
43
+ regulation pages carry "Copyright © 2024 Kentucky Legislative Research
44
+ Commission - All rights reserved". That notice cannot reach the statutory text
45
+ itself — edicts of government are uncopyrightable at every level of US law, which
46
+ is exactly why PRD-PLATES §4 tells us to prefer the statute over the brochure —
47
+ but it is a real, fetched, affirmative copyright assertion by a Kentucky state
48
+ body over the material it publishes, and it is carried into `artwork_risk` below
49
+ as the only direct Kentucky IP evidence obtained.
50
+
51
+ # ---------------------------------------------------------------------------
52
+ # artwork_risk — required per jurisdiction by PRD-PLATES §4.
53
+ # ---------------------------------------------------------------------------
54
+ artwork_risk:
55
+ posture: unresearched-leaning-asserted
56
+ basis: >-
57
+ Kentucky is absent from both columns of the pinned dossier's per-state table
58
+ and no Commons {{PD-KYGov}} tag was located, so the dossier's default governs:
59
+ 17 U.S.C. §105 does not reach the states, therefore a Kentucky plate design is
60
+ copyrighted unless Kentucky says otherwise, and Kentucky was not found saying
61
+ otherwise. The one direct artefact fetched points the other way from a
62
+ clearance — the Legislative Research Commission asserts "All rights reserved"
63
+ over its published statutes and regulations. That assertion is legally
64
+ ineffective as to the statutory TEXT (edicts are PD), which is precisely what
65
+ makes it informative about POSTURE: a Kentucky state body's default reflex is
66
+ to assert. Graded leaning-asserted rather than adverse, because a publisher's
67
+ footer is not a considered claim over plate artwork, and because nothing
68
+ resembling Arizona's express statement was found.
69
+ edict_carve_out: >-
70
+ The practical consequence for this program is favourable and worth stating
71
+ plainly: nearly everything Kentucky-specific in this file comes FROM the
72
+ statutes and regulations, which are PD edicts regardless of the LRC's footer.
73
+ The design elements that are NOT in the statute — the state icon, the gradient,
74
+ the wordmark — are the only exposure, and they are the ones §3 renders as
75
+ placeholders anyway.
76
+ emblem_rule: >-
77
+ PRD-PLATES §3 placeholder default applies. The "state icon screened on the left"
78
+ of the current base renders as `emblem: {present: true, rendered: placeholder}`.
79
+ Note that KRS 186.240(1)(d) prescribes the plate's TEXTUAL content in detail —
80
+ identifier, jurisdiction indication, optional slogans, county, optional religious
81
+ legend — and prescribes no graphic at all, so the icon is a departmental design
82
+ choice with no statutory drawing behind it. That is the opposite of the German
83
+ position (§6), where statutory drawings put the design in the public domain: here
84
+ there is no drawing to inherit PD status from.
85
+ sources:
86
+ - "https://apps.legislature.ky.gov/law/statutes/statute.aspx?id=58177 # KRS 186.240 as served by the LRC, carrying the 'Copyright © 2024 Kentucky Legislative Research Commission - All rights reserved' notice; also the statutory content rule that prescribes text and no graphic"
87
+ - "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 Kentucky"
88
+
89
+ us_standards:
90
+ no_federal_mandate: true
91
+ chain: "SAE J686 -> AAMVA License Plate Standard Edition 3 (September 2025) -> voluntary state adoption; recommendations in the declarative present, no enforcement power."
92
+ aamva_edition_3:
93
+ 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. Kentucky's 12x6 in figure is locator-grade."
94
+ retroreflectivity: "AAMVA §3.3: readable in daylight and at night from at least 75 feet; materials per ASTM D4956-19 and ISO 7591:1982 clause 3. KENTUCKY LEGISLATED REFLECTORISATION AND FUNDED IT — see reflectorization below, which is the only dedicated statutory plate-reflectivity FUND found anywhere in this dataset."
95
+ 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."
96
+ replacement_cycle: >-
97
+ AAMVA §1.1 recommends a cycle not to exceed 7 to 10 years. KENTUCKY LEGISLATED
98
+ NO NUMBER AT ALL: KRS 186.240(3) says the cabinet "shall issue reflectorized
99
+ license plates under the provisions of this subsection ON A SCHEDULE TO BE
100
+ DETERMINED AT THE DISCRETION OF THE CABINET". So Kentucky's replacement cadence
101
+ is a delegated administrative decision, not a legislated interval — the third
102
+ distinct answer in this group after Florida's legislated ten years, Mississippi's
103
+ legislated five and Tennessee's legislated-but-budget-conditional eight.
104
+ source: "https://www.aamva.org/getmedia/646bcc8a-219b-47d8-b5cd-726240473163/License-Plate-Standard-Edition-3_September-2025-Update.pdf"
105
+ folklore_caution: >-
106
+ The "1956 agreement" appears in the Kentucky article's lead as in every state
107
+ article read for this group, now carrying one citation — Garrish, Christopher,
108
+ "Reconsidering the Standard Plate Size", *Plates* (Automobile License Plate
109
+ Collectors Association), vol. 62 no. 5, October 2016 — which was not obtainable
110
+ and whose title implies revision rather than confirmation. Still unsourced.
111
+ Kentucky's 12x6 in figure here is locator-grade and labelled as such.
112
+
113
+ # ---------------------------------------------------------------------------
114
+ # The statutory content rule. KRS 186.240(1)(d) is the closest thing in this
115
+ # group to a legislated plate SPECIFICATION, and it is unusual in what it omits.
116
+ # ---------------------------------------------------------------------------
117
+ statutory_content_rule:
118
+ citation: "KRS 186.240(1)(d), effective July 15, 2026"
119
+ elements:
120
+ - "1. The registration identifier"
121
+ - "2. An indication that Kentucky is the issuing jurisdiction"
122
+ - "3. At the discretion of the cabinet, any combination of: a. 'Bluegrass State'; or b. 'United We Stand, Divided We Fall'"
123
+ - "4. For standard plates for noncommercial vehicles: a. The county in which the plate is issued; and b. At the discretion of the person to whom the vehicle is registered, the phrase 'In God We Trust'"
124
+ - "5. For plates for commercial vehicles, the year the license expires and words or information the Department of Vehicle Regulation may prescribe by administrative regulation"
125
+ reading: >-
126
+ THREE THINGS THIS SECTION DOES THAT ARE WORTH MODELLING. First, it prescribes
127
+ a plate entirely in TEXT — identifier, jurisdiction, slogans, county, legend —
128
+ and prescribes no colour, no dimension, no graphic and no serial grammar.
129
+ Kentucky legislates what the plate SAYS and delegates what it LOOKS LIKE, which
130
+ is the mirror image of Alabama, where the department specifies geometry in
131
+ millimetric detail and the statute was unobtainable. Second, the two slogans are
132
+ at the CABINET's discretion while the religious legend is at the REGISTRANT's —
133
+ two different discretions in adjacent subparagraphs, and only the second creates
134
+ a per-vehicle variant. Third, the statute's own frame is "a standard plate ... for
135
+ POLICE IDENTIFICATION PURPOSES": Kentucky's plate-content rule is drafted as a
136
+ law-enforcement legibility rule, not as a design rule, which is why it reads as a
137
+ checklist of things that must be discernible rather than as a specification.
138
+ source: "https://apps.legislature.ky.gov/law/statutes/statute.aspx?id=58177"
139
+
140
+ reflectorization:
141
+ statutory_text: >-
142
+ KRS 186.240(2)-(3): the Transportation Cabinet "shall provide for the issuance of
143
+ reflectorized plates for all motor vehicles, and shall collect a fee ... of fifty
144
+ cents ($0.50)"; that fee is deposited into a "reflectorized license plate program
145
+ fund ... established in the state road fund and appropriated on a continual basis
146
+ to the cabinet", any year-end balance "shall be retained in the fund and shall not
147
+ revert to the state road fund", and interest earned is retained too.
148
+ note: >-
149
+ A HYPOTHECATED, NON-REVERTING, CONTINUALLY APPROPRIATED FUND WHOSE ONLY PURPOSE IS
150
+ PLATE REFLECTIVITY. No other jurisdiction surveyed in this dataset has one. It is
151
+ recorded because it is the mechanism behind Kentucky's replacement schedule — the
152
+ cabinet's discretion under subsection (3) is exercised against this fund's balance,
153
+ so Kentucky's reissue cadence is a function of fifty-cent fees rather than of a
154
+ legislated interval.
155
+ source: "https://apps.legislature.ky.gov/law/statutes/statute.aspx?id=58177"
156
+
157
+ display_rules:
158
+ default: >-
159
+ ONE plate, REAR. KRS 186.170(1)(a): the owner "shall display the registration
160
+ plate conspicuously upon the rear of the motor vehicle, except that the
161
+ registration plate upon a SEMITRAILER-TRACTOR shall be displayed upon the FRONT
162
+ of the tractor."
163
+ tractor_exception_note: >-
164
+ THE SAME OUTLIER FLORIDA HAS, IN A SECOND STATE. Florida's § 320.0706 makes a
165
+ truck tractor FRONT-ONLY, inverting that state's rear-only default, and it was
166
+ called a genuine US outlier in the L0 pilot. Kentucky does exactly the same thing
167
+ for a semitrailer-tractor, in a statute recodified in 1942. Two states, two
168
+ independent statutes, one rule — so the front-mounted tractor plate is a regional
169
+ convention rather than a Florida quirk, and any consumer modelling "which end is
170
+ the plate on" needs a per-vehicle-class answer, not a per-state one.
171
+ legibility: "KRS 186.170(1)(c): 'Plates shall be kept legible at all times and the rear plate shall be illuminated when being operated during the hours designated in KRS 189.030. No rim, frame, or other covering around the plate shall in any way obscure or cover any lettering or decal on the plate.'"
172
+ frame_rule_note: >-
173
+ That last sentence is more consequential than it looks: it protects the DECAL as
174
+ well as the lettering. Kentucky puts the county on a sticker (see the standard
175
+ series), so the anti-frame rule is doing double duty — obscuring the county
176
+ sticker is a display violation in the same breath as obscuring the serial.
177
+ receipt: "KRS 186.170(1)(b): the registration receipt, or a copy, must be kept in the vehicle at all times except for motorcycles, and be available for inspection"
178
+ registration_year: "KRS 186.170(2): April 1 to March 31 for commercial vehicles, trailers, semitrailers, mobile homes and recreational vehicles"
179
+ sources:
180
+ - "https://apps.legislature.ky.gov/law/statutes/statute.aspx?id=57814 # KRS 186.170 effective July 15, 2026 (amended 2026 Ky. Acts ch. 135 sec. 17; recodified 1942 Ky. Acts ch. 208 sec. 1 from Ky. Stat. sec. 2739g-11): rear display, the semitrailer-tractor front exception, legibility and illumination, the rim/frame rule, the in-vehicle receipt, and the commercial registration year"
181
+
182
+ series:
183
+
184
+ # =========================================================================
185
+ # THE CURRENT STANDARD BASE — plain option.
186
+ # =========================================================================
187
+ - id: us-ky-standard-2020
188
+ class: standard
189
+ categories: [car, van, truck]
190
+ period: { start: 2020 }
191
+ period_evidence: locator-dated
192
+ matching: strict
193
+ format:
194
+ pattern: "L9L999"
195
+ regex: '\A(?:[A-Z]\d[A-Z]\d{3}|[A-Z]{3}\d{3})\z'
196
+ regex_strict: '\A(?:[A-HJ-PR-TV-Z]\d[A-HJ-PR-TV-Z]\d{3}|[A-HJ-PR-TV-Z]{3}\d{3})\z'
197
+ charset:
198
+ excluded: ["I", "Q", "U"]
199
+ excluded_source_note: >-
200
+ THE ONLY AGENCY-SOURCED ALPHABET EXCLUSION IN THIS ENTIRE GROUP, and the
201
+ reason this is the only series in the group carrying a `regex_strict`.
202
+ KYTC, in its own words on its own plate page: "As of July 19, 2023, the
203
+ letters 'I', 'Q' and 'U' have been eliminated from all new personalized
204
+ plate applications. This will be consistent with the VISIBILITY RULES
205
+ ALREADY IN PLACE FOR STANDARD PLATES." The second sentence is the load-
206
+ bearing one: the cabinet states that the exclusion already governed
207
+ STANDARD plates before it was extended to personalized ones. Note the set
208
+ is I, Q, U — not the usual I, O, Q. Kentucky excludes U and keeps O, which
209
+ is unusual enough that a validator built on the common assumption will be
210
+ wrong in both directions.
211
+ notes: >-
212
+ Two arrangements have run on this one base: three letters then three
213
+ numerals from September 2020, and letter-digit-letter-three-numerals from
214
+ August 2021. Both are carried in `regex`, because they are two phases of one
215
+ counter on one physical base rather than two issuance systems — the same
216
+ call made for Alabama's eight arrangements in this group, and the opposite
217
+ call from Tennessee's two standard options, which differ by POLICY rather
218
+ than by exhaustion.
219
+ pattern_note: >-
220
+ The regex tier order holds as §2.7 requires: `regex_strict` (the cabinet's own
221
+ alphabet, I/Q/U removed) is contained in `regex` (both arrangements, full
222
+ alphabet), and there is no `regex_statutory` twin because KRS 186.240
223
+ prescribes plate CONTENT and no serial grammar at all — Kentucky's statute
224
+ simply has nothing to say about width or alphabet, so inventing an outer legal
225
+ bound would be inventing a statute.
226
+ progression: "reported ranges: ATF000 to AZZ999 and BCE000 to approximately CBZ999 in the three-letter arrangement; A0A000 to W1C050 as of March 2026 in the current arrangement. Locator-grade"
227
+ design:
228
+ plate: { w: 12, h: 6, unit: in, hex_basis_note: "locator-grade; no Kentucky instrument stating it was obtained" }
229
+ material: "aluminium (locator)"
230
+ manufacturer_reported: "Roederer Correctional Complex, La Grange, Kentucky — prison manufacture, in contrast with Mississippi's Nova Scotia commercial contractor in this same group. Locator-grade"
231
+ relief: >-
232
+ FLAT DIGITALLY PRINTED, not embossed — the base changed manufacturing method
233
+ in 2020. Kentucky therefore joins Alabama (screened since 2006) on the
234
+ digital side of the group while Mississippi still embosses, and the render
235
+ layer should not assume raised characters for any of the three.
236
+ background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
237
+ foreground: "#00205B"
238
+ colour_note: >-
239
+ Both hexes are `observed` approximations of a described "dark blue serial on
240
+ white and light blue gradient plate" and are NOT sourced. KRS 186.240
241
+ prescribes no colour whatsoever, so there is no instrument to check them
242
+ against; a gradient also has no single background value. Treat as unverified.
243
+ legend_top: "KENTUCKY, with BLUEGRASS STATE above it in smaller type"
244
+ legend_statutory_basis: >-
245
+ Both legends are authorised by KRS 186.240(1)(d)2-3: the jurisdiction
246
+ indication is mandatory, and "Bluegrass State" is one of the two slogans the
247
+ cabinet may elect. The cabinet has chosen Bluegrass State and has NOT used
248
+ "United We Stand, Divided We Fall" on this base, which is a discretion
249
+ exercised rather than a rule followed.
250
+ legend_bottom: "<county name>, on a BLUE STICKER in a box"
251
+ county_sticker_note: >-
252
+ The county is a REMOVABLE STICKER in a debossed box, as in Tennessee and unlike
253
+ Mississippi, which embosses it into the metal. KRS 186.240(1)(d)4.a requires
254
+ "The county in which the plate is issued" to appear, and the sticker is the
255
+ cabinet's implementation of that requirement — so in Kentucky the statutory
256
+ county element and the physical plate can disagree after a move, which is
257
+ exactly why KRS 186.180 provides for issuance of plates on removal from one
258
+ county to another.
259
+ separator: none
260
+ separator_note: "The 2020 base prints the serial as one unbroken group — a locator notes the 'serial is not separated in middle, as with past designs'. The regexes accordingly spell no separator, in contrast with every other current series in this group."
261
+ emblem: { present: true, rendered: placeholder, description: "state icon screened on the left; not prescribed by statute — see artwork_risk.emblem_rule" }
262
+ rear_differs: false
263
+ region_encoding:
264
+ mechanism: "county appears as a printed STICKER legend and encodes nothing in the serial"
265
+ note: >-
266
+ There is no geographic decode in a Kentucky plate string. Kentucky is
267
+ nevertheless the historical origin of the practice in the United States: a
268
+ locator records that Kentucky's 1927 plate was the first state-issued
269
+ passenger plate in the country to carry the name of the county of issuance, and
270
+ the requirement survives today in KRS 186.240(1)(d)4.a. A century of county
271
+ legends, none of them ever encoded in the serial.
272
+ sources:
273
+ - "https://apps.legislature.ky.gov/law/statutes/statute.aspx?id=58177 # KRS 186.240(1)(d) effective July 15, 2026: the registration identifier, the jurisdiction indication, the cabinet's slogan discretion ('Bluegrass State' / 'United We Stand, Divided We Fall'), the county requirement for noncommercial standard plates, and the registrant's In God We Trust discretion; (2)-(3) the reflectorization mandate, the fifty-cent fee, the non-reverting program fund and the cabinet's discretionary replacement schedule"
274
+ - "https://drive.ky.gov/Vehicles/Pages/License-Plates.aspx # KYTC: 'Standard-issue passenger plates (Bluegrass State and In God We Trust)'; the July 19, 2023 elimination of I, Q and U and the statement that this matches the visibility rules ALREADY IN PLACE FOR STANDARD PLATES"
275
+ - "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Kentucky # LOCATOR ONLY (PRD-PLATES §4): the September 2020 base start, the flat digital printing, the white/light-blue gradient and dark blue serial, the state icon at left, the county sticker, the unseparated serial, the ABC123 then A1B234 arrangements with their reported ranges, Roederer Correctional Complex manufacture, and the 1927 first-county-name claim. None asserted as sourced"
276
+ notes: >-
277
+ KENTUCKY STANDARD ISSUE, CURRENT BASE. THE ALPHABET IS BETTER SOURCED THAN THE
278
+ DATE, which is the reverse of the usual US situation and is worth saying out
279
+ loud: the I/Q/U exclusion comes from the cabinet's own page and is therefore
280
+ encoded in `regex_strict`, while `start: 2020` rests on a locator giving
281
+ September 21, 2020 and no KYTC or gubernatorial announcement of the base was
282
+ located. A verifier should look for the 2020 announcement; if the true date
283
+ moves within 2020 the id survives unchanged, and if it moves out of 2020 the id
284
+ becomes a former-id alias under the PRD-QUALITY I-5/I-6 contract.
285
+ WHY ONE SERIES ACROSS TWO ARRANGEMENTS: ABC123 ran until the three-letter space
286
+ neared exhaustion around CBZ999 and A1B234 took over in August 2021 on the same
287
+ base with the same design and the same alphabet. That is a counter rolling over,
288
+ not a new issuance system, so it is one series with a two-branch regex — and the
289
+ branch structure is itself the era signal a parse API can use, since a Kentucky
290
+ ABC123 plate cannot have been issued after mid-2021.
291
+
292
+ # =========================================================================
293
+ # THE IN GOD WE TRUST OPTION — statutory, and deliberately indistinguishable.
294
+ # =========================================================================
295
+ - id: us-ky-standard-igwt-2020
296
+ class: standard
297
+ categories: [car, van, truck]
298
+ period: { start: 2020 }
299
+ period_evidence: locator-dated
300
+ matching: strict
301
+ format:
302
+ pattern: "L9L999"
303
+ regex: '\A(?:[A-Z]\d[A-Z]\d{3}|[A-Z]{3}\d{3})\z'
304
+ regex_strict: '\A(?:[A-HJ-PR-TV-Z]\d[A-HJ-PR-TV-Z]\d{3}|[A-HJ-PR-TV-Z]{3}\d{3})\z'
305
+ charset:
306
+ excluded: ["I", "Q", "U"]
307
+ notes: "identical to the plain option in every respect, because the serials are drawn from the same pool — see pattern_note"
308
+ pattern_note: >-
309
+ THE REGEX IS IDENTICAL TO `us-ky-standard-2020` AND THAT IS THE FACT, NOT AN
310
+ OVERSIGHT. A locator records that the In God We Trust serials are "Taken from
311
+ standard allocation" — one number space, two designs. So a Kentucky serial
312
+ carries NO information about which of the two standard options it is on, and
313
+ any consumer that tries to infer the option from the string is guessing.
314
+ `matching: strict` is still correct: the regex is exactly the issuing grammar
315
+ for this series. It is simply also the grammar for its twin.
316
+ design:
317
+ plate: { w: 12, h: 6, unit: in }
318
+ background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
319
+ foreground: "#00205B"
320
+ legend_top: "KENTUCKY, with BLUEGRASS STATE above it"
321
+ legend_extra: "IN GOD WE TRUST, screened in blue above the county sticker"
322
+ legend_bottom: "<county name>, on a blue sticker; the sticker box sits slightly lower than on the plain option"
323
+ legend_statutory_basis: >-
324
+ KRS 186.240(1)(d)4.b: the phrase appears "At the discretion of the person to
325
+ whom the vehicle is registered". THE DISCRETION IS THE REGISTRANT'S, WHICH IS
326
+ WHAT MAKES THIS A SERIES RATHER THAN A CABINET STYLING CHOICE — the same
327
+ statute puts the two slogans at the cabinet's discretion in the immediately
328
+ preceding subparagraph, and the drafter clearly distinguished the two kinds of
329
+ election.
330
+ emblem: { present: true, rendered: placeholder }
331
+ rear_differs: false
332
+ fee: "no cost — reported as a no-cost alternative plate, consistent with a statutory registrant election rather than a specialty program"
333
+ region_encoding: "county as sticker legend; nothing encoded in the serial"
334
+ sources:
335
+ - "https://apps.legislature.ky.gov/law/statutes/statute.aspx?id=58177 # KRS 186.240(1)(d)4.b: 'At the discretion of the person to whom the vehicle is registered, the phrase In God We Trust' — the statutory basis, and its contrast with the cabinet's slogan discretion in subparagraph 3"
336
+ - "https://drive.ky.gov/Vehicles/Pages/License-Plates.aspx # KYTC lists 'Bluegrass State and In God We Trust' as the two standard-issue passenger plates, both personalizable"
337
+ - "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Kentucky # LOCATOR ONLY: the option has run since January 2011 on the prior base and since September 2020 on this one; serials 'Taken from standard allocation'; the lowered county-sticker box; no-cost"
338
+ notes: >-
339
+ THE KENTUCKY IN GOD WE TRUST OPTION. Its own series under PRD-PLATES §2.3 on the
340
+ DESIGN test alone — the format is identical and the period is identical, but the
341
+ plate carries a legend the other does not, and a §2.3 variant becomes its own
342
+ series if format OR design OR period differs.
343
+ THE CROSS-STATE CONTRAST THIS GROUP EXISTS TO RECORD: Tennessee runs the same
344
+ statutory pair of standard options and gives them OPPOSITE serial arrangements
345
+ (ABC-1234 versus 123-ABCD), so a Tennessee string identifies the option
346
+ unambiguously. Kentucky runs the pair off one allocation, so a Kentucky string
347
+ identifies nothing. Neither state is wrong; the point is that "In God We Trust
348
+ plate" is a policy that two neighbours implemented with opposite consequences
349
+ for machine parsing, and a schema that modelled it as a boolean flag on one
350
+ standard series would have hidden that difference in both directions — inventing
351
+ distinguishability in Kentucky and destroying it in Tennessee.
352
+
353
+ # =========================================================================
354
+ # ONE SERIES BACK — the embossed Unbridled Spirit base.
355
+ # =========================================================================
356
+ - id: us-ky-standard-2008
357
+ class: standard
358
+ categories: [car, van, truck]
359
+ period: { start: 2008, end: 2020 }
360
+ period_evidence: locator-dated
361
+ matching: strict
362
+ format:
363
+ pattern: "999 LLL"
364
+ regex: '\A(?:\d{3} ?[A-Z]{3}|[A-Z]{3} ?\d{3})\z'
365
+ charset:
366
+ notes: >-
367
+ Two arrangements on one base again — 123 ABC from 2008, then ABC 123 from
368
+ late 2019 when the numeric-first space reached 999 ZZZ. A locator adds that
369
+ the 'S' series was not used in the 123 ABC arrangement, a narrower exclusion
370
+ than the I/Q/U rule that governs the current base; it is locator-grade and is
371
+ therefore recorded here rather than encoded in a `regex_strict`.
372
+ separator_note: >-
373
+ THIS BASE PRINTED A SEPARATED SERIAL and its successor does not. The gap is
374
+ spelled ` ?` here for that reason, and its absence in `us-ky-standard-2020` is
375
+ equally deliberate. A separator-forgiving consumer canonicalises both to the
376
+ same string by construction (§2.6 rule 1), so the change costs nothing at
377
+ match time — but the dataset still records the printed form, because the
378
+ printed form is the fact.
379
+ design:
380
+ plate: { w: 12, h: 6, unit: in }
381
+ relief: "EMBOSSED — the pre-2020 manufacturing method"
382
+ background: { finish: retroreflective, hex_basis: unsourced }
383
+ colour_note: "described as an embossed dark blue serial on a white and light blue gradient; no hex recorded, as a gradient has no single value and none is sourced"
384
+ legend_top: "KENTUCKY"
385
+ legend_slogans: "BLUEGRASS STATE and UNBRIDLED SPIRIT, screened above and below a Kentucky Tourism logo"
386
+ legend_slogan_note: >-
387
+ WORTH NOTING AGAINST THE CURRENT STATUTE: this base carried a TOURISM LOGO and
388
+ an 'Unbridled Spirit' branding line, neither of which is among the elements KRS
389
+ 186.240(1)(d) now authorises — the section allows 'Bluegrass State' or 'United
390
+ We Stand, Divided We Fall' and nothing else by way of slogan. Whether the
391
+ section then read differently was not checked; the amendment history shows
392
+ changes effective 2021, 2024 and 2026. Recorded as an open question rather than
393
+ as an inconsistency, and it is precisely the kind of question the statute's own
394
+ history line makes answerable.
395
+ legend_bottom: "<county name>, on a blue sticker in a debossed box"
396
+ emblem: { present: true, rendered: placeholder }
397
+ region_encoding: "county as sticker legend; nothing encoded in the serial"
398
+ sources:
399
+ - "https://apps.legislature.ky.gov/law/statutes/statute.aspx?id=58177 # KRS 186.240's amendment history — amended 2021 Ky. Acts ch. 53 sec. 2 (eff. June 29, 2021), 2022 Ky. Acts ch. 18 sec. 15 and 2023 Ky. Acts ch. 129 sec. 3 (both eff. January 1, 2024), 2026 Ky. Acts ch. 199 sec. 6 (eff. July 15, 2026) — the trail a verifier follows to date the slogan rule against this base"
400
+ - "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Kentucky # LOCATOR ONLY: 'June 2008 - late 2019' for the 123 ABC arrangement (901 JCB to 999 ZZZ) and 'late 2019 - September 2020' for ABC 123 (AAA 000 to ATE 999; BAA 000 to approximately BCD 999); the Unbridled Spirit design and tourism logo; narrower serial dies; the 'S' series exclusion"
401
+ notes: >-
402
+ THE UNBRIDLED SPIRIT BASE, 2008 to 2020 — the predecessor L2 asks for. Two things
403
+ it contributes beyond completeness. First, it is the embossed half of Kentucky's
404
+ manufacturing boundary, so any render or OCR model that assumes one Kentucky
405
+ character rendering is wrong on one side of 2020. Second, its slogans raise a
406
+ real question against the current statutory list, and Kentucky is the one state
407
+ in this group where that question is ANSWERABLE — the LRC publishes each
408
+ section's full amendment history, so a verifier can date the slogan rule exactly
409
+ rather than guessing. That is the practical dividend of a state that serves its
410
+ own law.
411
+
412
+ # =========================================================================
413
+ # HISTORIC — statutory, permanent, and unusually well specified.
414
+ # =========================================================================
415
+ - id: us-ky-historic
416
+ class: historic
417
+ categories: [car, truck, motorcycle]
418
+ period: { start: 1968 }
419
+ period_evidence: statutory-creation-date
420
+ matching: strict
421
+ format:
422
+ pattern: "999"
423
+ regex: '\A\d+\z'
424
+ charset:
425
+ notes: >-
426
+ KRS 186.043(4), verbatim: "These plates shall have a serial number beginning
427
+ with the number '100' and continue in a consecutive numerical sequence." A
428
+ stated ORIGIN and a stated PROGRESSION with NO stated width — hence the
429
+ unbounded quantifier, which makes no width claim. Compare Florida's Horseless
430
+ Carriage and Antique series, which start at 1; Kentucky starts at 100, so a
431
+ Kentucky historic serial is at least three digits by construction.
432
+ progression: "strictly sequential from 100"
433
+ design:
434
+ plate: { w: 12, h: 6, unit: in }
435
+ background: { finish: retroreflective, hex_basis: unsourced }
436
+ colour_rule: >-
437
+ KRS 186.043(4) requires "two (2) special license plates of a DIFFERENT COLOR
438
+ AND DESIGN than the regular license plate, which, in the judgment of the
439
+ secretary of the Transportation Cabinet, will best advertise, popularize, and
440
+ promote the Commonwealth of Kentucky." The statute specifies a design PROPERTY
441
+ (difference) and a design PURPOSE (promotion) and no design VALUE — the same
442
+ drafting move Florida makes with "a distinguishing color", one step further.
443
+ legend: "KENTUCKY plus 'Historic Motor Vehicle' inscribed conspicuously"
444
+ no_year_date: "KRS 186.043(4): the plates 'carry no year date' — an explicit statutory prohibition, and the physical correlate of the permanent registration below"
445
+ emblem: { present: true, rendered: placeholder }
446
+ plate_count: 2
447
+ plate_count_note: >-
448
+ TWO PLATES, IN A REAR-ONLY STATE. KRS 186.043(4) directs the secretary to issue
449
+ "two (2) special license plates" while KRS 186.170(1)(a) requires only a rear
450
+ plate on everything else. The statute does not say where the second goes.
451
+ Recorded as a genuine, sourced oddity rather than resolved by assumption, and it
452
+ is a live trap for any consumer that stores "plates issued" as a per-state
453
+ constant.
454
+ eligibility: >-
455
+ KRS 186.043(2): "'historic vehicle' shall mean all motor vehicles twenty-five
456
+ (25) years old or older, which are used primarily for exhibition in shows,
457
+ parades, tours, and other special uses, but not for general transportation." A
458
+ ROLLING twenty-five-year threshold plus a USE restriction — contrast Florida,
459
+ which runs a FIXED 1945 cutoff for Horseless Carriage and a rolling thirty years
460
+ for Antique. Kentucky's rolling threshold silently re-qualifies a new model year
461
+ every January and therefore needs re-auditing in a way a fixed cutoff never does.
462
+ validity: >-
463
+ Permanent. KRS 186.043(6): "The registration license and license plates of
464
+ historic motor vehicles shall be valid without renewal as long as the vehicle is
465
+ in existence", transferable to a new owner on application and a three-dollar fee.
466
+ authentic_plate_option: >-
467
+ A GENUINELY UNUSUAL PROVISION AND A REAL PARSING HAZARD. KRS 186.043(5): "Historic
468
+ vehicles may display an AUTHENTIC KENTUCKY LICENSE PLATE, twenty-five (25) years
469
+ or older, OR A REPRODUCTION of such a plate, if the historic motor vehicle plate
470
+ and the registration receipt are kept in the vehicle at all times." So a lawfully
471
+ registered Kentucky vehicle may be driving under a plate from ANY Kentucky series
472
+ of the last century — or a reproduction of one — with the current plate sitting in
473
+ the glovebox. Any Kentucky plate format the dataset ever records, however dead,
474
+ remains potentially LIVE on the road under this subsection. That is the strongest
475
+ argument in this group for the dataset's period discipline being about validity
476
+ rather than mere history.
477
+ legislative_intent: >-
478
+ KRS 186.043(1) states its own purpose, which is rare enough to quote: the General
479
+ Assembly intends "to recognize the special value of historic vehicles to the
480
+ Commonwealth, and also to recognize that historic vehicles, because of their
481
+ limited use and easily identifiable characteristics, do not require the same
482
+ degree of regulation as other vehicles."
483
+ region_encoding: none
484
+ sources:
485
+ - "https://apps.legislature.ky.gov/law/statutes/statute.aspx?id=5928 # KRS 186.043 effective June 20, 2005 (created 1968 Ky. Acts ch. 14 secs. 1 to 5 and 7): the legislative-intent subsection, the rolling 25-year definition with its use restriction, the two-plate issuance, the different-colour-and-design rule, the 'Historic Motor Vehicle' legend, the no-year-date prohibition, the serial beginning at 100 in consecutive sequence, the authentic-or-reproduction period-plate option, and permanent validity with a $3 transfer"
486
+ notes: >-
487
+ KENTUCKY HISTORIC MOTOR VEHICLE PLATES — the best-specified series in this group,
488
+ and one of the best-specified in the dataset, because the whole of it is in one
489
+ statute. `period.start: 1968` is a REAL claim rather than an upper bound: the
490
+ section's own history line records "Created 1968 Ky. Acts ch. 14, secs. 1 to 5
491
+ and 7", so the series demonstrably begins in 1968 — the only series in this group
492
+ with a sourced true start rather than an instrument-in-force ceiling. That is
493
+ what a state serving its own statutes with amendment histories buys you, and it
494
+ is the concrete argument for prioritising jurisdictions whose legislatures
495
+ publish, when a gate has to be sequenced.
496
+
497
+ # =========================================================================
498
+ # PERSONALIZED — statutory plus regulatory, and the one series in this group
499
+ # whose serial may lawfully contain a separator.
500
+ # =========================================================================
501
+ - id: us-ky-personalized
502
+ class: personalized
503
+ categories: [car, van, truck, motorcycle]
504
+ period: { start: 1977 }
505
+ period_evidence: statutory-creation-date
506
+ matching: strict
507
+ format:
508
+ pattern: "LLLLLL"
509
+ regex: '\A[A-Z0-9](?:[- ]?[A-Z0-9]){0,5}\z'
510
+ regex_strict: '\A[A-HJ-PR-TV-Z0-9](?:[- ]?[A-HJ-PR-TV-Z0-9]){0,5}\z'
511
+ charset:
512
+ excluded: ["I", "Q", "U"]
513
+ max_characters: 6
514
+ max_characters_motorcycle: 5
515
+ notes: >-
516
+ KYTC, verbatim: "Personalized passenger plates may contain up to six alphas
517
+ and/or numeric characters IN ADDITION TO A SPACE OR DASH" and "Personalized
518
+ motorcycle plates may contain up to five alpha and/or numeric characters in
519
+ addition to a space or dash". And: "As of July 19, 2023, the letters 'I', 'Q'
520
+ and 'U' have been eliminated from all new personalized plate applications."
521
+ Both the cap and the exclusion are agency-stated, which is why this series
522
+ carries a `regex_strict` — the only other one in this group besides its
523
+ standard-plate siblings.
524
+ separator_note: >-
525
+ A SANCTIONED SEPARATOR-ONLY CLASS (PRD-PLATES §2.8), and here it is sourced
526
+ rather than inferred. The cabinet says the requested combination may include "a
527
+ space or dash" ON TOP OF the six characters, so the separator is genuinely
528
+ optional, genuinely either glyph, and genuinely not part of the six-character
529
+ budget. `[- ]?` is the honest encoding: it contains only separator characters
530
+ and is not negated, so a consumer deriving a separator-free twin deletes the
531
+ class with its quantifier and can never touch a serial character.
532
+ pattern_note: >-
533
+ `matching: strict` and the tier order holds: `regex_strict` (I/Q/U removed) is
534
+ contained in `regex` (full alphabet), and no `regex_statutory` twin exists
535
+ because KRS 186.174 defines a personalized plate by its PROVENANCE — "letters or
536
+ numbers or combinations of letters and numbers significant to the applicant" —
537
+ and states no width at all. The six-character bound is the cabinet's, not the
538
+ legislature's, and is labelled accordingly.
539
+ design:
540
+ plate: { w: 12, h: 6, unit: in }
541
+ plate_variants: [{ for: motorcycle, w: 7, h: 4, unit: in, note: "size is a regional convention and is NOT sourced for Kentucky; the FIVE-character motorcycle cap, however, IS agency-stated" }]
542
+ note: "any standard-issue, military or special plate may be personalized — the design is inherited from the underlying plate, not defined here"
543
+ emblem: { present: true, rendered: placeholder }
544
+ fee: "$25 personalized-plate fee to the county clerk, in addition to registration (KYTC); KRS 186.174(4)(c) sets a further $25 state fee for combining a SPECIAL plate with personalization, split $20 cabinet / $5 county clerk"
545
+ refusal_criteria:
546
+ statutory: >-
547
+ KRS 186.174(5)(b): a personalized plate shall not be issued if the cabinet
548
+ determines that "1. The message ... discriminates against a race, color,
549
+ religion, sex, or national origin; 2. The plate message is the name of a
550
+ trademarked or copyrighted product or brand name; or 3. The plate's lettering
551
+ or message is obscene or profane, as determined by the cabinet."
552
+ regulatory: >-
553
+ 601 KAR 9:012 Section 5(1) adds a RECALL power after issuance: a plate issued
554
+ "through oversight or any other reason which carries letter or number
555
+ combinations offensive to good taste and decency ... shall be recalled by the
556
+ cabinet", the owner must take an ordinary plate, and the twenty-five dollar fee
557
+ is refunded.
558
+ note: >-
559
+ KENTUCKY IS THE ONLY STATE IN THIS GROUP WITH SOURCED CONTENT-REFUSAL CRITERIA,
560
+ and Florida's are a recorded gap in the L0 pilot. The trademark limb is worth
561
+ one extra line: subparagraph 2 bars a plate bearing "a trademarked or
562
+ copyrighted product or brand name", which is the same third-party-IP concern
563
+ Alabama's design specification polices for sponsor artwork — two states, two
564
+ instruments, one anxiety.
565
+ uniqueness_and_priority:
566
+ uniqueness: "KRS 186.174(5)(a): a personalized plate shall not be issued that would conflict with or duplicate any current issued plate. KYTC restates it: 'A personalized plate character combination may only appear on one plate at any given time.'"
567
+ priority: "KRS 186.174(5)(c): once obtained, the holder has first priority on that combination in each following year on timely renewal"
568
+ lapse: "601 KAR 9:012 Section 6: if a personalized plate is not renewed before September 1 of the preceding year, the cabinet shall not issue the same combination FOR ONE YEAR, and then only on proper application — a mandatory cooling-off period on a released vanity combination"
569
+ first_come: "601 KAR 9:012 Section 2: competing applications for the same combination are resolved by TIME-STAMP, each application being stamped immediately on receipt"
570
+ expiry: "KRS 186.174(3): personalized plates expire on the last day of the BIRTH MONTH of the person to whom the plate is registered — the same birth-month scheme Florida uses"
571
+ replacement: "KRS 186.174(4)(a): 'A personalized license plate shall be replaced on the same schedule as regular issue license plates unless it is damaged or unreadable' — so personalized plates inherit the cabinet's discretionary reflectorization schedule under KRS 186.240(3)"
572
+ region_encoding: none
573
+ sources:
574
+ - "https://apps.legislature.ky.gov/law/statutes/statute.aspx?id=55748 # KRS 186.174 effective January 1, 2025 (created 1976 Ky. Acts ch. 153 sec. 3, effective January 1, 1977): the definition by provenance, online application, birth-month expiry, replacement on the regular schedule, the $25 special-plate combination fee and its $20/$5 split, the uniqueness rule, the three refusal criteria, and the renewal priority"
575
+ - "https://apps.legislature.ky.gov/law/kar/titles/601/009/012/ # 601 KAR 9:012 'Personalized license plates' (3 Ky.R. 186, eff. 9-1-1976; certified eff. 1-9-2026): the time-stamp first-come rule, the county-clerk issuance and inter-county forwarding procedure, the post-issuance recall for combinations offensive to good taste and decency with refund, and the one-year lapse embargo"
576
+ - "https://drive.ky.gov/Vehicles/Pages/License-Plates.aspx # KYTC: six characters for passenger and five for motorcycle, each 'in addition to a space or dash'; the July 19, 2023 elimination of I, Q and U; the $25 fee; the Personalized Plate Review Committee pre-approval and the monthly Appeal Committee"
577
+ notes: >-
578
+ KENTUCKY PERSONALIZED PLATES. Modelled as its own series because the SERIAL SOURCE
579
+ differs — owner-chosen rather than cabinet-assigned — which is a format property
580
+ even where the character frame overlaps, the same call the Florida pilot made.
581
+ `period.start: 1977` is a REAL claim from the section's history line ("Created
582
+ 1976 Ky. Acts ch. 153, sec. 3, effective January 1, 1977"), not an upper bound.
583
+ THE SEPARATOR IS THE ENTRY'S CONTRIBUTION TO THE SCHEMA. Everywhere else in this
584
+ dataset a separator is a printed feature of an authority-assigned serial;
585
+ here the cabinet lets the APPLICANT choose whether to have one and which glyph it
586
+ is, and says so in terms. It is the cleanest possible vindication of §2.6's
587
+ disjointness contract: because a space and a dash are never serial-significant,
588
+ a forgiving consumer collapses every applicant's stylistic choice to one
589
+ canonical string without being told anything else.
590
+
591
+ # =========================================================================
592
+ # TEMPORARY — regulatory, and a real security-feature record.
593
+ # =========================================================================
594
+ - id: us-ky-temporary
595
+ class: temporary
596
+ categories: [car, van, truck, motorcycle]
597
+ period: { start: 2026 }
598
+ period_evidence: instrument-in-force-upper-bound
599
+ matching: recall-only
600
+ format:
601
+ pattern: "999999"
602
+ regex: '\A[A-Z0-9]+\z'
603
+ charset: { notes: "NO WIDTH OR ALPHABET CLAIM IS MADE. 601 KAR 9:140 governs the issuance, logging and control of temporary registration plates in detail and specifies no serial grammar whatsoever; none was obtained elsewhere" }
604
+ pattern_note: "`matching: recall-only` (§2.7): the regex is deliberately wider than anything Kentucky issues and a match is a shape hit, not a validity claim. No `regex_strict`, per §2.7."
605
+ design:
606
+ plate: { w: 12, h: 6, unit: in, hex_basis_note: "not sourced" }
607
+ security_feature: >-
608
+ PANOGRAPHIC, and the regulation defines the term itself — 601 KAR 9:140 Section
609
+ 1: "'Panographic' means a surface that if scanned or xeroxed shall produce a
610
+ secured background word or image." That is a covert/overt security feature of
611
+ exactly the kind AAMVA §3.4 leaves to jurisdiction discretion, named and defined
612
+ in a state regulation, which is rare enough to record.
613
+ emblem: { present: false }
614
+ validity: "SIXTY DAYS. 601 KAR 9:140 Section 3, implementing KRS 186A.100(1): a county clerk shall not issue more than one 60-day temporary registration plate to a motor vehicle, motorcycle or owner; a dealer shall not issue more than one per sale; and 'A temporary registration plate shall not be renewed.'"
615
+ issuance_chain: >-
616
+ Dealer-mediated rather than owner-applied: a dealer representative applies to the
617
+ county clerk with photo identification and written dealer authorisation (or is
618
+ checked against the dealer's KRS 186.070(2) authorised-persons list), the clerk
619
+ issues from the Automated Vehicle Information System a receipt carrying the dealer,
620
+ the date and the CONTROL NUMBERS of each plate issued, and the dealer signs for
621
+ them.
622
+ audit_trail: >-
623
+ 601 KAR 9:140 Section 4 requires a Temporary Tag Log (TC form 96-210) recording
624
+ the dealer's name, telephone and principal place of business, the plate number,
625
+ the delivery date, the expiration date, the purchaser's name, and the VIN, make
626
+ and model year — available on demand to cabinet officials and law enforcement.
627
+ region_encoding: none
628
+ sources:
629
+ - "https://apps.legislature.ky.gov/law/kar/titles/601/009/140/ # 601 KAR 9:140 'Temporary registration plates', relating to KRS 186.070, 186A.100, 186A.105(2) and 190.030: the panographic definition, the dealer-representative application and authorisation check, AVIS receipts and control numbers, the one-plate-per-sale and sixty-day non-renewable limits, and the TC 96-210 Temporary Tag Log contents"
630
+ notes: >-
631
+ KENTUCKY TEMPORARY REGISTRATION PLATES. `matching: recall-only` because the
632
+ regulation is rich about PROCESS and silent about FORMAT — it specifies who may
633
+ apply, what the clerk records, how long the plate lives and what security
634
+ substrate it is printed on, and never once says how many characters the number
635
+ has. Rather than invent a width, the series records what is genuinely known and
636
+ declares the regex a shape hit. The panographic definition is the keeper: it is a
637
+ state regulation defining a plate security feature in words, which is exactly the
638
+ sort of thing the render layer needs and no photograph can supply.
639
+
640
+ # =========================================================================
641
+ # DEALER — statutory, and bound to the business.
642
+ # =========================================================================
643
+ - id: us-ky-dealer
644
+ class: dealer
645
+ categories: [car, van, truck, motorcycle]
646
+ period: { start: 1996 }
647
+ period_evidence: regulatory-stated-date
648
+ matching: recall-only
649
+ format:
650
+ pattern: "999999"
651
+ regex: '\A[A-Z0-9]+\z'
652
+ charset: { notes: "no serial grammar is stated in KRS 186.070 or 601 KAR 9:220, both of which are about ENTITLEMENT to plates rather than the plates themselves; none was obtained elsewhere" }
653
+ pattern_note: "`matching: recall-only` (§2.7): wider than anything issued; a match is a shape hit. No `regex_strict`, per §2.7."
654
+ design:
655
+ plate: { w: 12, h: 6, unit: in, hex_basis_note: "not sourced" }
656
+ emblem: { present: true, rendered: placeholder }
657
+ binding: business
658
+ validity: "KRS 186.070(1)(d): 'License plates issued under this section shall annually expire on December 31' — a fixed calendar expiry, not the birth-month scheme that governs private plates"
659
+ allocation_rule:
660
+ basis: "601 KAR 9:220 Section 2, effective with the licensing period beginning January 1, 1996"
661
+ scale: >-
662
+ The number of dealer plates a Kentucky dealer may hold is a STEP FUNCTION OF
663
+ SALES VOLUME: ten or fewer sales, one plate; 11-25, two; 26-50, three; 51-75,
664
+ four; 76-100, five; above 100 sales, as many as the dealer requests. A dealer
665
+ licensed for under eighteen uninterrupted months may apply for any number.
666
+ good_cause: >-
667
+ Additional plates are available on the Motor Vehicle Commission's recommendation
668
+ for good cause, the regulation's own examples including lost or stolen plates
669
+ with a police report, test-drive burden, and transport to auctions or for
670
+ service.
671
+ note: >-
672
+ WHY A DATASET SHOULD CARE ABOUT A SALES-BANDED ENTITLEMENT TABLE: it bounds the
673
+ POPULATION of the series. Most plate series have an unbounded population; this
674
+ one is capped, per business, by a published function of that business's sales,
675
+ which makes Kentucky dealer plates one of the few series whose total issuance is
676
+ estimable from public data.
677
+ supplemental_plates: "601 KAR 9:220 Section 1(5) defines 'dealer plate' as 'any BASE PLATE or SUPPLEMENTAL PLATE issued pursuant to KRS 186.070' — the regulation contemplates two kinds and this file specifies neither, a recorded gap"
678
+ misuse_sanction: "KRS 186.070: a dealer's plates may be cancelled and the licence revoked for a year for misuse, with 601 KAR 9:220 defining misuse as use unauthorised by the statute or by the regulation's own Section 3"
679
+ region_encoding: none
680
+ sources:
681
+ - "https://apps.legislature.ky.gov/law/statutes/statute.aspx?id=51518 # KRS 186.070 'Registration of manufacturers and dealers - Dealer's plates and stickers': one dealer plate on registration, $14.50 per additional plate with $3 retained by the clerk, the December 31 annual expiry, the restriction on who may operate a dealer-plated vehicle, and revocation for misuse"
682
+ - "https://apps.legislature.ky.gov/law/kar/titles/601/009/220/ # 601 KAR 9:220 'Motor vehicle dealer plates': the definitions including base and supplemental plates, the sales-banded allocation table effective for the licensing period beginning January 1, 1996, the eighteen-month new-dealer rule, and the good-cause additional-plate examples"
683
+ notes: >-
684
+ KENTUCKY DEALER PLATES. `binding: business` for the standing reason — the plate
685
+ follows the dealership, not a vehicle, exactly as with Florida's dealer plates and
686
+ Germany's rote Kennzeichen. `period.start: 1996` is taken from the regulation's own
687
+ operative date ("Effective with the issuance of dealer plates for the licensing
688
+ period beginning January 1, 1996"), which dates the ALLOCATION REGIME rather than
689
+ the plate type; dealer plates plainly predate it, so 1996 is a regime boundary and
690
+ is labelled `regulatory-stated-date` rather than passed off as the series origin.
691
+ The format is the gap, and it is the same gap as for temporaries: Kentucky
692
+ regulates plate ADMINISTRATION exhaustively and plate TYPOGRAPHY not at all.
693
+
694
+ # =========================================================================
695
+ # SPECIALTY — THE PROGRAM INDEX, per PRD-PLATES §2.5.
696
+ # =========================================================================
697
+ - id: us-ky-specialty-index
698
+ class: specialty
699
+ categories: [car, van, truck, motorcycle]
700
+ period: { start: 2026 }
701
+ period_evidence: instrument-in-force-upper-bound
702
+ matching: recall-only
703
+ format:
704
+ pattern: "999999"
705
+ regex: '\A[A-Z0-9]{1,6}\z'
706
+ charset:
707
+ notes: >-
708
+ The six-character bound is inherited from the cabinet's own personalized-plate
709
+ statement rather than from any specialty-specific instrument, on the reasoning
710
+ that a special plate may be personalized and must therefore fit the same
711
+ frame. That is an INFERENCE, not a source, which is one of the two reasons
712
+ this series is recall-only.
713
+ pattern_note: "`matching: recall-only` (§2.7): one entry stands for 150+ plate types whose individual arrangements are out of scope at this gate (§2.5), on an unsourced width bound. A match is a shape hit. No `regex_strict`, per §2.7."
714
+ design:
715
+ plate: { w: 12, h: 6, unit: in }
716
+ plate_variants: [{ for: motorcycle, w: 7, h: 4, unit: in }]
717
+ background: { finish: retroreflective }
718
+ emblem: { present: true, rendered: placeholder }
719
+ note: "one design per authorised plate type; individual designs are L4 scope and none is described here"
720
+ program_index:
721
+ count_official: "over 150"
722
+ count_official_quote: >-
723
+ KYTC, in its own words: "Kentucky issues over 150 different types of passenger
724
+ and motorcycle license plates."
725
+ categories_official: ["Regular (Standard Issue)", "Special", "University", "Independent College", "Military", "Military Motorcycle", "Miscellaneous", "Disabled", "Special Motorcycle"]
726
+ categories_note: >-
727
+ The cabinet's own nine-way taxonomy, and note that it counts REGULAR STANDARD
728
+ ISSUE as one of the 150 types — so the figure is a count of plate TYPES in the
729
+ cabinet's catalogue, not of optional programs, and is not directly comparable
730
+ with Alabama's 398 catalogue entries or Tennessee's 200+ optional plates. Three
731
+ states, three incommensurable numerators. Recorded rather than harmonised.
732
+ statutory_framework:
733
+ - "KRS 186.162 — special license plates for members or supporters of groups and organizations; initial and renewal fees; combination with personalization; motorcycle special plates"
734
+ - "KRS 186.163 — special plates for specified military units, with qualification and proof requirements"
735
+ - "KRS 186.164 — collection and distribution of special plate fees; DESIGN, PRINTING AND REPLACEMENT; application process; voluntary contributions; audit of special plate funds and annual report"
736
+ - "KRS 186.166 — perpetual production of certain special plates, and the design of Purple Heart plates"
737
+ - "KRS 186.165 — exchange of one special plate for another and transfer to another vehicle"
738
+ - "KRS 186.041 / 186.172 / 186.1722 — military-related, firefighter and I Support Veterans plates"
739
+ perpetual_production_note: >-
740
+ KRS 186.166 is the interesting one and has no analogue elsewhere in this group:
741
+ Kentucky legislates PERPETUAL PRODUCTION for certain special plates, which means
742
+ the statute forbids the cabinet from discontinuing them. Most states' specialty
743
+ programs churn — Florida's § 320.08056(8)(a) obliges DISCONTINUATION in stated
744
+ circumstances — and Kentucky has legislated the opposite guarantee for a named
745
+ subset. A specialty index that assumes every program is mortal will be wrong
746
+ about Kentucky in a specific, statutory way.
747
+ audit_note: "KRS 186.164 requires an AUDIT of special licence plate funds and an ANNUAL REPORT — a published-report hook worth chasing, in the way Florida's monthly active-plate portal was: it is the kind of agency output that carries per-plate volumes and that nobody archives"
748
+ official_list_url: "https://drive.ky.gov/Vehicles/Pages/License-Plates.aspx"
749
+ official_plate_list_app_note: >-
750
+ KYTC directs users to a 'Plate List application page' carrying an image and
751
+ availability checker for every plate. It was NOT reachable in this pass —
752
+ secure.kentucky.gov returned 502 on every path tried — so no per-plate list or
753
+ image inventory was obtained. Recorded gap, and the single most valuable
754
+ Kentucky follow-up.
755
+ region_encoding: none
756
+ sources:
757
+ - "https://drive.ky.gov/Vehicles/Pages/License-Plates.aspx # KYTC: 'Kentucky issues over 150 different types of passenger and motorcycle license plates', the nine-category taxonomy, and the statement that standard, motorcycle, military and special plates can all be personalized"
758
+ - "https://apps.legislature.ky.gov/law/statutes/chapter.aspx?id=38025 # KRS Chapter 186 section index: the statutory framework for special plates at 186.041, 186.162, 186.163, 186.164, 186.165, 186.166, 186.172 and 186.1722, including 186.164's design/printing/replacement and audit duties and 186.166's perpetual-production guarantee"
759
+ notes: >-
760
+ THE KENTUCKY SPECIALTY INDEX — one entry standing for the whole program, per §2.5.
761
+ Two things worth carrying forward. First, the count is not comparable across
762
+ states and this file refuses to make it look as though it were: Kentucky counts
763
+ TYPES including standard issue, Alabama counts catalogue ENTRIES including
764
+ personalized duplicates, Tennessee counts OPTIONAL plates. Any cross-state
765
+ "specialty plates per state" chart built on these three numbers would be
766
+ comparing three different things, and the dataset should keep saying so.
767
+ Second, KRS 186.166's perpetual-production guarantee is a real, statutory,
768
+ Kentucky-specific fact about program mortality that cuts directly against the
769
+ churn assumption the Florida pilot recorded — and it is exactly the kind of thing
770
+ only a state that publishes its own statutes will ever tell you.