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,452 @@
1
+ # plates/us-co.yml — Colorado (PRD-PLATES gate L2, mountain group).
2
+ #
3
+ # WHY COLORADO IS UNUSUAL, stated up front: it is the only state in this group
4
+ # whose legislature legislates the SERIAL LENGTH and the COLOURS OF ITS OWN
5
+ # RETIRED DESIGNS. § 42-3-201(5)(a) C.R.S. caps a standard plate at "no more
6
+ # than a total of six numbers and letters" — Florida's seven-character cap has
7
+ # a six-character cousin here — and § 42-3-206.5, added in 2021, orders the
8
+ # department to reissue four named historic styles, describing each ONE BY ITS
9
+ # COLOURS in the statutory text. That second section is the most colour-
10
+ # specific plate provision found anywhere in this group's five states.
11
+ #
12
+ # ARTWORK POSTURE, and it is the bad news: Colorado is ADVERSE. § 24-72-203(4)
13
+ # C.R.S. specifically authorises the state to obtain and enforce copyright over
14
+ # public records. See `artwork_risk` — this is a pinned primary, not an
15
+ # inference from a secondary summary.
16
+ #
17
+ # SOURCING RULE APPLIED HERE (PRD-PLATES §4): edicts of government are public
18
+ # domain at every level, so every claim that CAN come from Title 42 does. The
19
+ # Colorado Revised Statutes 2023 were read as the Colorado General Assembly's
20
+ # own PDF (Office of Legislative Legal Services). The Division of Motor
21
+ # Vehicles' own pages are cited only for what the statute does not carry: which
22
+ # designs are currently offered, the group-special catalogue, and the
23
+ # manufacture/Print-On-Demand arrangements.
24
+ #
25
+ # WHAT IS NOT HERE (PRD-PLATES §2.5): individual group-special DESIGNS. The
26
+ # index entry `us-co-group-special-index` stands for the whole programme.
27
+ jurisdiction: us-co
28
+ authority:
29
+ name: Colorado Department of Revenue, Division of Motor Vehicles (DMV)
30
+ url: "https://dmv.colorado.gov/license-plates"
31
+ binding: vehicle
32
+ statute_edition: >-
33
+ Colorado Revised Statutes 2023, Title 42 (Vehicles and Traffic) and Title 24
34
+ (Government - State), read from the Office of Legislative Legal Services PDFs
35
+ published at leg.colorado.gov. Marked "Uncertified Printout" by the publisher;
36
+ it is nevertheless the legislature's own edition, which is what §4 asks for.
37
+
38
+ # ---------------------------------------------------------------------------
39
+ # artwork_risk — required per jurisdiction by PRD-PLATES §4.
40
+ # ---------------------------------------------------------------------------
41
+ artwork_risk:
42
+ posture: adverse-copyright-authorised-by-statute
43
+ basis: >-
44
+ Colorado's open-records act expressly reserves copyright to the state.
45
+ § 24-72-203(4) C.R.S., verbatim: "Nothing in this article shall preclude the
46
+ state or any of its agencies, institutions, or political subdivisions from
47
+ obtaining and enforcing trademark or copyright protection for any public
48
+ record, and the state and its agencies, institutions, and political
49
+ subdivisions are hereby specifically authorized to obtain and enforce such
50
+ protection in accordance with the applicable federal law; except that this
51
+ authorization shall not restrict public access to or fair use of copyrighted
52
+ materials and shall not apply to writings which are merely lists or other
53
+ compilations." The subsection was added by L. 92, p. 1104, § 3, effective
54
+ 1 July 1992. This is the same shape of hazard as Arizona's, arrived at by a
55
+ different route: Arizona asserts copyright in an agency policy, Colorado
56
+ authorises it in statute.
57
+ what_this_does_and_does_not_reach: >-
58
+ The authorisation is over PUBLIC RECORDS and is expressly subject to fair
59
+ use, and expressly does NOT apply to "writings which are merely lists or
60
+ other compilations" — which is precisely the character of a serial-format
61
+ table. Nothing in the section touches the uncopyrightability of facts, and
62
+ nothing in it reaches the STATUTE itself: § 42-3-201, § 42-3-206.5 and
63
+ § 42-3-211 are edicts of government and public domain at every level
64
+ (PRD-PLATES §4). So the facts in this file are clean; the RENDERED MOUNTAIN
65
+ GRAPHIC is the exposure, and it routes through the strict path.
66
+ emblem_rule: >-
67
+ PRD-PLATES §3 placeholder default applies with extra force here. The
68
+ Colorado mountain-range graphic is the single most recognisable element of
69
+ the plate and it has been continuously in use since 1960 — render
70
+ `graphic: {present: true, rendered: placeholder}` and do not trace, do not
71
+ trace from a photograph, and do not approximate closely enough to be
72
+ substitutable. Colorado state seal statutes are UNRESEARCHED (the standing
73
+ gap from the US dossier §4.5, unclosed here).
74
+ photograph_caution: >-
75
+ Unchanged from the pilot's finding: a Commons CC BY-SA tag on a Colorado
76
+ plate photograph is the PHOTOGRAPHER's licence on the PHOTOGRAPH. The
77
+ uploader had no standing over the design, and because our renders are
78
+ generated from the spec and never derived from a photograph, those
79
+ share-alike obligations never attach. That reasoning is what keeps an
80
+ adverse-posture state renderable at all.
81
+ sources:
82
+ - "https://leg.colorado.gov/sites/default/files/images/olls/crs2023-title-24.pdf # § 24-72-203(4): the state is 'specifically authorized to obtain and enforce' copyright over public records; the fair-use and mere-lists carve-outs; Source note L. 92 p. 1104 § 3"
83
+ - "https://en.wikipedia.org/wiki/Copyright_status_of_works_by_subnational_governments_of_the_United_States # LOCATOR ONLY (PRD-PLATES §4) — this is where the § 24-72-203 pointer was found; the statute above was then read directly and is what is cited"
84
+
85
+ # ---------------------------------------------------------------------------
86
+ # The US standards chain. Recorded per file because each state file must stand
87
+ # alone. Full treatment lives in us-fl.yml; the delegation trap is restated
88
+ # because it is the reason no dimension below is attributed to SAE J686.
89
+ # ---------------------------------------------------------------------------
90
+ us_standards:
91
+ no_federal_mandate: true
92
+ chain: "SAE J686 -> AAMVA License Plate Standard Edition 3 (September 2025) -> voluntary state adoption. AAMVA has no enforcement power."
93
+ aamva_edition_3:
94
+ dimensions_delegated: "AAMVA §3.1 sends plate dimensions and bolt holes to SAE J686, whose own text is PAYWALLED and UNPINNED. No J686 dimension is quoted here or 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, at least 1.25 in clear of top and bottom edges."
96
+ jurisdiction_name_layout: "AAMVA §2.1: jurisdiction name in the top centre between the bolt holes, at least 0.25 in above the plate number and 0.125 in from the top edge; jurisdiction characters 0.75-1.0 in."
97
+ replacement_cycle: "AAMVA §1.1 recommends a rolling or full replacement cycle 'not to exceed 7 to 10 years'. COLORADO HAS NO STATUTORY REPLACEMENT CYCLE AT ALL — see `replacement_posture` below."
98
+ source: "https://www.aamva.org/getmedia/646bcc8a-219b-47d8-b5cd-726240473163/License-Plate-Standard-Edition-3_September-2025-Update.pdf"
99
+ folklore_caution: >-
100
+ The "1956 AMA standardization agreement" appears in the Wikipedia Colorado
101
+ article footnoted to an ALPCA members' magazine article by Christopher
102
+ Garrish titled "Reconsidering the Standard Plate Size" (Plates, October
103
+ 2016). Note what that means: the citation offered for the claim is an
104
+ article whose title announces that it RECONSIDERS the claim, and it is a
105
+ hobbyist magazine, not a primary instrument. The US dossier already found
106
+ the same story uncited on the parent article. Recorded here as COMMONLY
107
+ REPEATED, UNSOURCED. Colorado's plate size is not stated in Title 42 at all
108
+ (recorded gap) — § 42-3-201(2) states a legibility distance, not a size.
109
+
110
+ replacement_posture:
111
+ statutory_cycle: none
112
+ basis: >-
113
+ Title 42 sets NO replacement cycle. § 42-3-201(1)(b)(I): "The department may
114
+ issue the number plates required in this section for one or more
115
+ registration periods." § 42-3-201(5)(b): "The department of revenue may
116
+ require the replacement of any license plate as necessary to ensure that
117
+ license plates are legible as required by section 42-3-202 (2)." So
118
+ replacement in Colorado is CONDITION-TRIGGERED and discretionary, not
119
+ scheduled — the opposite pole from Florida's legislated 10 years, and a
120
+ second data point for the standing answer that there is no US redesign
121
+ cadence, only per-state replacement regimes.
122
+ plate_expires_on_transfer: >-
123
+ SB 21-069 made Class C plates EXPIRE ON TRANSFER of the owner's title or
124
+ interest, unless the plate is personalized or carries a reserved valuable
125
+ registration number under the Laura Hershey Disability Support Act. A
126
+ Colorado plate therefore does not follow the car to its next owner — which
127
+ makes `binding: vehicle` true only for the duration of one ownership.
128
+
129
+ display_rules:
130
+ default: "TWO plates, front and rear. § 42-3-202(1)(a)(I): 'the owner shall attach the number plates assigned to a self-propelled vehicle to the vehicle with one in the front and the other in the rear.'"
131
+ rear_only_classes:
132
+ - "motorcycle (§ 42-3-202(1)(a)(II)(A))"
133
+ - "autocycle (§ 42-3-202(1)(a)(II)(B))"
134
+ - "street rod vehicle (§ 42-3-202(1)(a)(II)(C))"
135
+ - "trailer, semitrailer, or other vehicle drawn by a motor vehicle (§ 42-3-202(1)(a)(II)(D))"
136
+ - "special mobile machinery (§ 42-3-202(1)(a)(II)(E))"
137
+ one_plate_issued_for: "the same list, plus items of special mobile machinery, per § 42-3-201(1)(a)(I)(A)-(G); and the executive director may issue one plate for any other vehicle at discretion (§ 42-3-201(1)(a)(II))"
138
+ legibility: "§ 42-3-201(2): the plate and its letters and numerals, except the year number, 'must be of sufficient size to be plainly readable from a distance of one hundred feet during daylight'"
139
+ displayed_content: "§ 42-3-201(2): the registration number, the year number for which issued, the month in which it expires, 'and any other appropriate symbol, word, or words designated by the department'. Permanent plates without year/month are authorised by rule; Class A commercial trailers and semitrailers carry no month/year and get no validating sticker (§ 42-3-201(7))."
140
+ digital_plates: >-
141
+ COLORADO AUTHORISES DIGITAL NUMBER PLATES. § 42-3-201(8)(a): the owner "may
142
+ display a digital number plate in lieu of one or both of the plates issued
143
+ under subsection (1)(a)(I) if the registration number and expiration date
144
+ are clearly visible at a distance of one hundred feet in normal sunlight";
145
+ (8)(b) "Digital number plates need not display more than one color";
146
+ (8)(d) defines one as "an electronic display that is mounted on a vehicle in
147
+ the place of and that serves the function of a number plate". THE
148
+ AUTHORISATION IS TIME-LIMITED: (8)(e) repeals subsection (8) effective
149
+ 1 September 2027. A plates dataset now has to model a plate that is not a
150
+ plate; recorded here rather than in a series because no format, colour or
151
+ layout is prescribed for it.
152
+ sources:
153
+ - "https://leg.colorado.gov/sites/default/files/images/olls/crs2023-title-42.pdf # § 42-3-201 plates furnished, one-vs-two, displayed content, 100-foot legibility, six-character cap, digital plates and their 2027 repeal; § 42-3-202 front-and-rear attachment and the rear-only classes"
154
+
155
+ series:
156
+
157
+ # =========================================================================
158
+ # CURRENT STANDARD ISSUE. The mountain base has been continuously in use
159
+ # since January 2000; the SERIAL ARRANGEMENT changed in mid-2018.
160
+ # =========================================================================
161
+ - id: us-co-standard-2018
162
+ class: standard
163
+ categories: [car, van, truck, bus]
164
+ period: { start: 2018 }
165
+ period_evidence: corroboration-only
166
+ matching: strict
167
+ format:
168
+ pattern: "LLL-L99"
169
+ regex: '\A[A-Z]{3}-?[A-Z]\d{2}\z'
170
+ regex_statutory: '\A[A-Z0-9](?:-?[A-Z0-9]){0,5}\z'
171
+ charset:
172
+ notes: >-
173
+ § 42-3-201(5)(a) C.R.S., verbatim: "A new or replacement license plate
174
+ issued by the department shall, to the extent that it is practical,
175
+ have standardized coloring and identifying characters limited to no
176
+ more than a total of six numbers and letters; except that such
177
+ character limitation does not apply to personalized license plates
178
+ issued under section 42-3-211." That is the WHOLE statutory constraint
179
+ on a Colorado standard serial: a six-character maximum, softened by
180
+ "to the extent that it is practical", and an alphabet of numbers and
181
+ letters. No letter exclusions appear anywhere in Title 42.
182
+ letter_exclusions_unsourced: >-
183
+ Collector tracking reports that the letter O has not been used in the
184
+ fourth position since 2024, and that Q was withheld from the 2000-2015
185
+ series until the base run was exhausted and then reintroduced position
186
+ by position. NEITHER IS ENCODED IN `regex_strict`, because the only
187
+ evidence is a collector site (licenseplates.cc) reached through a
188
+ Wikipedia locator. Recorded as a lead for a future pass, not as a
189
+ sourced charset.
190
+ pattern_note: >-
191
+ `regex` encodes the current arrangement — three letters, separator, one
192
+ letter, two numerals, six characters in all, which sits exactly at the
193
+ statutory cap. `regex_statutory` encodes what § 42-3-201(5)(a) actually
194
+ permits: up to six alphanumerics, written in PRINTED form per
195
+ PRD-PLATES §2.6 rule 2 so that it accepts the hyphen the plate shows.
196
+ progression: >-
197
+ Not alphabetical in issuance. The DMV's own explanation, via the
198
+ collector record: plates are MANUFACTURED alphabetically but ISSUED from
199
+ stock, and "the most progressive numbers are often found on low-volume
200
+ special plates, as they are typically issued after being manufactured
201
+ rather than kept in stock". Consequence for era inference: a Colorado
202
+ serial's position in the alphabet bounds its MANUFACTURE date, not its
203
+ issue date. Corroboration-grade.
204
+ design:
205
+ plate: { w: 12, h: 6, unit: in, w_mm: 304.8, h_mm: 152.4 }
206
+ plate_dimension_note: >-
207
+ NOT IN TITLE 42. Colorado's statute states a legibility distance
208
+ (§ 42-3-201(2), one hundred feet in daylight) and no dimension at all.
209
+ The 12x6 inch figure is the North American convention recorded in the
210
+ AAMVA/SAE chain above and is NOT attributed to any Colorado instrument
211
+ (recorded gap).
212
+ background: { finish: retroreflective }
213
+ colour_note: >-
214
+ NO COLOUR VALUE IS CLAIMED. Title 42 says only "standardized coloring"
215
+ (§ 42-3-201(5)(a)) and never names a hue. No departmental colour
216
+ specification was obtained. The design is described by a Wikipedia
217
+ LOCATOR as an embossed dark green serial on a reflective graphic plate
218
+ carrying a mountain range; that description is recorded as a lead, and
219
+ no hex is asserted (contrast us-fl, where an official brochure at least
220
+ depicted the colours). This is the honest state of the claim.
221
+ graphic: { present: true, rendered: placeholder, description: "mountain range, continuously part of the Colorado design since 1960 except 1973 and 1975-76; a screened, more detailed rendering replaced the earlier version in January 2000 — locator-grade" }
222
+ emblem: { present: false }
223
+ legend_top: "COLORADO"
224
+ rear_differs: false
225
+ region_encoding: >-
226
+ NONE TODAY, BUT COLORADO IS THE COUNTY-CODE STATE. Numeric county codes
227
+ were introduced on passenger and motorcycle plates in 1932, ordered by the
228
+ then-populations of the state's 63 counties, and ran through 1958 (Denver
229
+ last used code 1 in 1955). Nothing in a modern Colorado serial encodes
230
+ geography. The 1932-58 code table is L4 scope and is NOT reproduced here;
231
+ it is flagged as a real decode table waiting to be built.
232
+ sources:
233
+ - "https://leg.colorado.gov/sites/default/files/images/olls/crs2023-title-42.pdf # § 42-3-201(5)(a): the SIX-CHARACTER cap, 'standardized coloring', and the personalized-plate exception; (2): displayed content and the 100-foot legibility rule"
234
+ - "https://dmv.colorado.gov/license-plates # Colorado DMV: all Colorado plates are printed by Colorado Correctional Industries; the Print-On-Demand programme for low-issuance plates; plate expiry on transfer under SB 21-069"
235
+ - "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Colorado # LOCATOR ONLY (PRD-PLATES §4): the mid-2018 arrangement change, the AAA-A00 start, the mountain-base continuity since 1960 and the January 2000 screened redesign. None is asserted as sourced."
236
+ notes: >-
237
+ COLORADO STANDARD ISSUE, CURRENT ARRANGEMENT. The id carries 2018 because
238
+ the format boundary is what makes this a distinct series, but
239
+ `period_evidence: corroboration-only` is the honest grade: mid-2018 comes
240
+ from a Wikipedia locator and a collector site, NOT from any Colorado
241
+ instrument, and no primary establishing the boundary was obtained. The
242
+ BASE DESIGN did not change in 2018 — the mountain plate dates to January
243
+ 2000 and the mountain motif to 1960 — so a reader must not read this
244
+ series' start as a redesign date. If the department publishes an issuance
245
+ record, this id keeps its meaning and only the period sharpens; if the
246
+ boundary moves, the PRD-QUALITY I-5/I-6 alias contract applies.
247
+
248
+ # =========================================================================
249
+ # ONE SERIES BACK. Same base design, previous arrangement.
250
+ # =========================================================================
251
+ - id: us-co-standard-2015
252
+ class: standard
253
+ categories: [car, van, truck, bus]
254
+ period: { start: 2015, end: 2018 }
255
+ period_evidence: corroboration-only
256
+ matching: strict
257
+ format:
258
+ pattern: "LLL-999"
259
+ regex: '\A[A-Z]{3}-?\d{3}\z'
260
+ regex_statutory: '\A[A-Z0-9](?:-?[A-Z0-9]){0,5}\z'
261
+ charset: { notes: "the same § 42-3-201(5)(a) six-character cap and letters-and-numbers alphabet; this arrangement spends the cap as 3+3" }
262
+ design:
263
+ plate: { w: 12, h: 6, unit: in }
264
+ background: { finish: retroreflective }
265
+ colour_note: "identical base design to us-co-standard-2018 — the 2015-2018 change was to the SERIAL ARRANGEMENT only. No hex claimed, for the same reason."
266
+ graphic: { present: true, rendered: placeholder }
267
+ legend_top: "COLORADO"
268
+ region_encoding: none
269
+ sources:
270
+ - "https://leg.colorado.gov/sites/default/files/images/olls/crs2023-title-42.pdf # § 42-3-201(5)(a): the six-character cap this arrangement also sits at"
271
+ - "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Colorado # LOCATOR ONLY: the mid-2015 to mid-2018 window and the reuse of unissued 1982-92 serials"
272
+ notes: >-
273
+ THE PREVIOUS ARRANGEMENT, and the interesting thing about it is that it
274
+ was BACKFILL, not progression: the locator record has Colorado working
275
+ through serials left unissued in 1982-92 and then reissuing 1982-92
276
+ serials outright. A dataset that assumes serial order implies chronology
277
+ is wrong about Colorado twice over — once because plates are issued from
278
+ stock rather than in manufacture order, and once because the state has
279
+ demonstrably reused a retired serial run. Recorded because it bears
280
+ directly on the parse API's era inference.
281
+
282
+ # =========================================================================
283
+ # RETIRED-STYLE PLATES — the best-specified series in this file, because the
284
+ # legislature described the designs BY COLOUR in the statutory text.
285
+ # =========================================================================
286
+ - id: us-co-retired-style-2023
287
+ class: standard
288
+ categories: [car, truck, motorcycle]
289
+ period: { start: 2023 }
290
+ period_evidence: statutory-date
291
+ matching: strict
292
+ format:
293
+ pattern: "LLL-L99"
294
+ regex: '\A[A-Z]{3}-?[A-Z]\d{2}\z'
295
+ regex_statutory: '\A[A-Z0-9](?:-?[A-Z0-9]){0,5}\z'
296
+ charset: { notes: "a retired STYLE, not a retired numbering system: the plate carries a current serial under the § 42-3-201(5)(a) six-character cap. § 42-3-206.5(3) additionally allows a retired-style plate to be personalized under § 42-3-211, which lifts the cap to seven positions for that case." }
297
+ design:
298
+ plate: { w: 12, h: 6, unit: in }
299
+ background: { finish: retroreflective }
300
+ statutory_styles:
301
+ - "White letters and numbers on a background of green mountains and a white sky (§ 42-3-206.5(1)(a)(I))"
302
+ - "White letters and numbers on a background of black with a white border (§ 42-3-206.5(1)(a)(II))"
303
+ - "White letters and numbers on a background of blue with a white border (§ 42-3-206.5(1)(a)(III))"
304
+ - "White letters and numbers on a background of red with a white border (§ 42-3-206.5(1)(a)(IV))"
305
+ colour_note: >-
306
+ THIS IS THE ONE PLACE IN THIS GROUP'S FIVE STATES WHERE A LEGISLATURE
307
+ NAMES PLATE COLOURS. The four bullets above are the statute's own words.
308
+ They are still not hex values — "green mountains and a white sky" is a
309
+ description, not a specification — so no hex is asserted, but a renderer
310
+ has statutory authority for the colour RELATIONSHIPS, which is more than
311
+ the current standard plate gives it.
312
+ graphic: { present: true, rendered: placeholder }
313
+ design_authority: "§ 42-3-206.5(2.5): the Colorado disability funding committee pays for the design work, and 'the design for the previously retired license plate styles shall conform with standards established by the department'"
314
+ eligibility: "motorcycles, passenger cars, trucks, and noncommercial or recreational motor vehicles not exceeding sixteen thousand pounds empty weight (§ 42-3-206.5(1))"
315
+ fee: "regular taxes and fees plus an annual $25 fee credited to the disability support fund created in § 24-30-2205.5 (§ 42-3-206.5(1)(b))"
316
+ sunset_risk: "§ 42-3-206.5(2.5): after 1 January 2028 the department MAY STOP producing a style if demand, including willingness to pay the fee, is not sufficiently high. A style can therefore die without a repeal — exactly the `ended: true` + `year_end_min:` case, pre-announced."
317
+ region_encoding: none
318
+ sources:
319
+ - "https://leg.colorado.gov/sites/default/files/images/olls/crs2023-title-42.pdf # § 42-3-206.5: 'Beginning January 1, 2023' or on department capability, whichever is earlier; the four styles quoted by colour; the $25 disability-support fee; the design-conformance duty; the post-2028 discontinuation power; (3) personalization of a retired style; Source note L. 2021 SB 21-069, L. 2022 SB 22-217"
320
+ notes: >-
321
+ RETIRED-STYLE PLATES, and the ONE Colorado series in this file with a
322
+ properly dated start: § 42-3-206.5(1) says "Beginning January 1, 2023, or
323
+ when the department is able to issue license plates pursuant to section
324
+ 24-30-2203 (6)(j), whichever is earlier", so 2023 is `statutory-date` and
325
+ an UPPER bound on the true first issue rather than a guess. Note also what
326
+ the section proves about the earlier catalogue: the green-mountains-on-
327
+ white-sky style it revives is described in law, which is how a
328
+ colour claim about a 1970s Colorado plate can be made at all.
329
+
330
+ # =========================================================================
331
+ # PERSONALIZED — the statute lifts the six-character cap to seven positions.
332
+ # =========================================================================
333
+ - id: us-co-personalized
334
+ class: personalized
335
+ categories: [car, van, truck, motorcycle]
336
+ period: { start: 2023 }
337
+ period_evidence: instrument-in-force-upper-bound
338
+ matching: strict
339
+ format:
340
+ pattern: "LLLLLLL"
341
+ regex: '\A[A-Z0-9]{2,7}\z'
342
+ charset:
343
+ notes: >-
344
+ § 42-3-211(3)(a) C.R.S., verbatim: personalized plates "must be the
345
+ same color and design as regular motor vehicle license plates, must
346
+ consist of any combination of numbers or letters not exceeding seven
347
+ positions and not less than two positions except as otherwise provided
348
+ in section 24-30-2210, C.R.S., and must not conflict with existing
349
+ passenger, commercial, trailer, motorcycle, or other special license
350
+ plates series". A TWO-CHARACTER FLOOR as well as a seven-character
351
+ ceiling — the floor is unusual and is a real constraint, not decoration.
352
+ refusal_criteria: "§ 42-3-211(5): no duplication of registration numbers, and the department may refuse any combination that carries 'connotations offensive to good taste and decency', is misleading, or duplicates any other plate provided for in the article"
353
+ fee: "$35 on issuance, $25 on reissuance, $25 annual renewal, $12 to transfer to another vehicle (§ 42-3-211(6)(a)-(c)); a plate of only two alphabetic figures and up to four numeric figures costs the actual cost of issuing it (§ 42-3-211(6)(e))"
354
+ street_rod_carve_out: >-
355
+ § 42-3-211(2)(b) folds STREET ROD plates into the personalized definition,
356
+ and (3)(a) then exempts them from the same-colour-and-design rule: a street
357
+ rod plate is "of a design determined by the executive director of the
358
+ department, which design shall be different from those used by the state
359
+ for regular motor vehicle license plates". So Colorado's street rod plate
360
+ is a personalized plate that must NOT look like one.
361
+ county_opt_out: "§ 42-3-211(3)(b): where plates include the county of registration, the owner may take a personalized plate WITHOUT the county designation — a vestigial rule, since modern Colorado plates carry no county legend"
362
+ region_encoding: none
363
+ sources:
364
+ - "https://leg.colorado.gov/sites/default/files/images/olls/crs2023-title-42.pdf # § 42-3-211: the 2-to-7-position frame, same-colour-and-design rule, street rod exception, county opt-out, refusal criteria, the full fee schedule and the priority-loss rule in (6)(d)"
365
+ - "https://dmv.colorado.gov/license-plates # Colorado DMV: the application-then-approval-then-payment sequence, 6-8 week production, and the $60 one-time / $25 annual figures quoted on the FAQ (note the discrepancy against the statute's $35/$25 — recorded, not reconciled)"
366
+ notes: >-
367
+ PERSONALIZED PLATES. A DISCREPANCY IS RECORDED RATHER THAN AVERAGED
368
+ (PRD-PLATES §5.3): § 42-3-211(6)(a) states $35 on issuance and $25 on
369
+ reissuance, while the DMV's own FAQ states "a one-time personalization fee
370
+ of $60 upon their initial registration and are an additional $25 upon
371
+ renewal each year after". Both are cited above with their sources; neither
372
+ is preferred here, because fees are not a claim this dataset is trying to
373
+ win and the point of recording it is to show the two instruments disagree.
374
+ PERIOD CAVEAT: `start: 2023` is the statute edition read and is an upper
375
+ bound; Colorado has issued personalized plates for decades.
376
+
377
+ # =========================================================================
378
+ # SPECIALTY — THE PROGRAM INDEX, per PRD-PLATES §2.5.
379
+ # =========================================================================
380
+ - id: us-co-group-special-index
381
+ class: specialty
382
+ categories: [car, truck, motorcycle]
383
+ period: { start: 2023 }
384
+ period_evidence: instrument-in-force-upper-bound
385
+ matching: recall-only
386
+ format:
387
+ pattern: "LLL-L99"
388
+ regex: '\A[A-Z0-9](?:-?[A-Z0-9]){0,5}\z'
389
+ charset: { notes: "the § 42-3-201(5)(a) six-character statutory frame, which group-special plates share; the individual arrangements per programme were NOT obtained" }
390
+ pattern_note: >-
391
+ `matching: recall-only` is deliberate and is the honest reading. This
392
+ entry stands for FIFTY-ODD DIFFERENT PROGRAMMES whose individual serial
393
+ arrangements were not researched (they are L4 scope); the regex is
394
+ therefore the statutory outer frame and a match against it is a shape
395
+ hit and nothing more. It is emphatically NOT the claim that a matching
396
+ string is a valid Colorado group-special serial.
397
+ design:
398
+ plate: { w: 12, h: 6, unit: in }
399
+ background: { finish: retroreflective }
400
+ note: "one design per authorised programme; the designs themselves are L4 scope (PRD-PLATES §2.5) and none is described here"
401
+ emblem: { present: true, rendered: placeholder }
402
+ program_index:
403
+ count_measured: 50
404
+ count_basis: >-
405
+ FIFTY entries counted mechanically in the Colorado DMV's own
406
+ Group Special License Plates catalogue as archived 2024-01-21, by
407
+ counting the per-plate "Number of Plates Allowed" field. This is a
408
+ MEASURED count of one page at one instant, not a figure the department
409
+ publishes as a total, and it excludes the military, historical/special
410
+ and disability catalogues which the DMV keeps on separate pages. Stated
411
+ that way on purpose: no competitor distinguishes a counted index from a
412
+ quoted one, and the difference is the whole credibility of the number.
413
+ official_list_url: "https://dmv.colorado.gov/group-special-license-plates"
414
+ official_historical_special_url: "https://dmv.colorado.gov/historical-and-special-license-plates"
415
+ creation_threshold: >-
416
+ THE HARDEST STATUTORY GATE IN THIS GROUP. § 42-3-207(6): the department
417
+ "shall verify that the nonprofit organization proposing a group special
418
+ license plate has collected the signatures of at least three thousand
419
+ persons committed to purchasing the proposed license plate" — and
420
+ § 42-3-207(5) requires written notification of compliance from the
421
+ director BEFORE the sponsor may even seek legislation. Nevada's
422
+ equivalent threshold is 250 applications; Colorado's is three thousand
423
+ signatures collected in advance.
424
+ retirement_rule: >-
425
+ § 42-3-207(1)(b)(II): special plates approved under that section "shall
426
+ be retired, effective March 1, 2008, unless such plates are issued for
427
+ at least three thousand vehicles", with the executive director to
428
+ promulgate retirement standards. § 42-3-207(7) then lets remaining
429
+ INVENTORY of a below-threshold plate continue to be issued until
430
+ exhausted — so a retired Colorado programme keeps producing new
431
+ registrations after its retirement date. That is the same
432
+ dead-but-still-issuing shape as Florida's "Collectible" plate and it is
433
+ why `ended: true` semantics cannot be inferred from a retirement date.
434
+ closed_authorisation_route: "§ 42-3-207(1)(b)(I): 'A special license plate shall not be issued pursuant to this section unless such license plate was approved prior to January 1, 2001.' The rulemaking route to new special plates was shut in 2001; every plate since is its own statute, which is why §§ 42-3-208 to 42-3-218 read as a list of named programmes."
435
+ no_profit_sponsors: "§ 42-3-207(3): the department shall not issue an approval notification letter to any business entity conducted for profit"
436
+ donation_escalator: "§ 42-3-207(8): a sponsoring organisation may raise its minimum donation by $10 and, from 1 July 2019, adjust that increase annually for inflation, rounded to the nearest dollar"
437
+ fee: "regular registration taxes and fees plus a one-time $25 additional fee to the highway users tax fund (§ 42-3-207(4)); no fee for the privilege of a special plate may be collected unless expressly authorised by statute (§ 42-3-207(1)(a))"
438
+ region_encoding: none
439
+ sources:
440
+ - "https://leg.colorado.gov/sites/default/files/images/olls/crs2023-title-42.pdf # § 42-3-207 in full: the pre-2001 approval cut-off, the March 2008 retirement rule and its three-thousand-vehicle threshold, the three-thousand-signature creation gate, the no-for-profit-sponsor rule, the inventory-exhaustion carve-out, the $25 fee and the donation escalator; §§ 42-3-208 to 42-3-218 as the named-programme list"
441
+ - "https://dmv.colorado.gov/group-special-license-plates # the Colorado DMV's own group-special catalogue — the page the count of 50 was measured from, archived 2024-01-21"
442
+ notes: >-
443
+ THE GROUP-SPECIAL PROGRAM INDEX — one entry for the whole programme, which
444
+ is what PRD-PLATES §2.5 asks for at this gate. Two things worth carrying
445
+ forward. First, Colorado's programme is STATUTE-SHAPED in a way Florida's
446
+ is not: the rulemaking route closed on 1 January 2001, so the catalogue is
447
+ literally a list of sections of Title 42, and a future pass can enumerate
448
+ it from the code rather than from a web page. Second, the three-thousand-
449
+ signature gate plus the three-thousand-vehicle retirement threshold make
450
+ Colorado's index unusually STABLE — programmes here are expensive to
451
+ create and mechanically pruned, which is the opposite of the churn Florida
452
+ records.