vehicles 0.6.1 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (186) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop_todo.yml +164 -0
  3. data/CHANGELOG.md +274 -0
  4. data/README.md +55 -10
  5. data/data/PROVENANCE-vehicles.md +12 -0
  6. data/data/plates/PROVENANCE.md +5 -4
  7. data/data/plates/_decode/at-districts.yml +287 -0
  8. data/data/plates/_decode/ch-cantons.yml +110 -0
  9. data/data/plates/_decode/cn-issuing-offices.yml +463 -0
  10. data/data/plates/_decode/cn-provinces.yml +614 -0
  11. data/data/plates/_decode/cz-kraj.yml +159 -0
  12. data/data/plates/_decode/dk-serial-blocks.yml +327 -0
  13. data/data/plates/_decode/fr-departements.yml +191 -0
  14. data/data/plates/_decode/gb-age-identifiers.yml +170 -0
  15. data/data/plates/_decode/gb-memory-tags.yml +202 -0
  16. data/data/plates/_decode/gr-prefectures.yml +1408 -0
  17. data/data/plates/_decode/hr-cities.yml +315 -0
  18. data/data/plates/_decode/ie-counties.yml +227 -0
  19. data/data/plates/_decode/in-state-codes.yml +169 -0
  20. data/data/plates/_decode/is-districts-1938.yml +116 -0
  21. data/data/plates/_decode/it-provinces.yml +348 -0
  22. data/data/plates/_decode/jp-office-marks.yml +960 -0
  23. data/data/plates/_decode/jp-use-marks.yml +205 -0
  24. data/data/plates/_decode/kr-authority-marks.yml +146 -0
  25. data/data/plates/_decode/kr-use-syllables.yml +194 -0
  26. data/data/plates/_decode/lu-series-order.yml +638 -0
  27. data/data/plates/_decode/mx-entity-series.yml +380 -0
  28. data/data/plates/_decode/my-index-marks.yml +271 -0
  29. data/data/plates/_decode/no-counties-1913.yml +148 -0
  30. data/data/plates/_decode/no-districts.yml +901 -0
  31. data/data/plates/_decode/pl-powiats.yml +567 -0
  32. data/data/plates/_decode/pt-trailer-services.yml +96 -0
  33. data/data/plates/_decode/ro-counties.yml +213 -0
  34. data/data/plates/_decode/se-diplomatic.yml +220 -0
  35. data/data/plates/_decode/si-regions.yml +123 -0
  36. data/data/plates/_decode/sk-districts.yml +314 -0
  37. data/data/plates/_decode/th-registration-elements.yml +208 -0
  38. data/data/plates/_decode/ua-regions.yml +393 -0
  39. data/data/plates/_decode/za-licence-marks.yml +215 -0
  40. data/data/plates/_meta/classes.yml +1 -0
  41. data/data/plates/_meta/separators.yml +102 -0
  42. data/data/plates/ad.yml +961 -0
  43. data/data/plates/ar.yml +762 -0
  44. data/data/plates/at.yml +1424 -0
  45. data/data/plates/au-act.yml +472 -0
  46. data/data/plates/au-nsw.yml +282 -0
  47. data/data/plates/au-nt.yml +431 -0
  48. data/data/plates/au-qld.yml +272 -0
  49. data/data/plates/au-sa.yml +248 -0
  50. data/data/plates/au-tas.yml +302 -0
  51. data/data/plates/au-vic.yml +215 -0
  52. data/data/plates/au-wa.yml +309 -0
  53. data/data/plates/be.yml +1840 -0
  54. data/data/plates/br.yml +1152 -0
  55. data/data/plates/ca-ab.yml +430 -0
  56. data/data/plates/ca-bc.yml +697 -0
  57. data/data/plates/ca-mb.yml +499 -0
  58. data/data/plates/ca-nb.yml +537 -0
  59. data/data/plates/ca-nl.yml +743 -0
  60. data/data/plates/ca-ns.yml +808 -0
  61. data/data/plates/ca-nt.yml +610 -0
  62. data/data/plates/ca-nu.yml +280 -0
  63. data/data/plates/ca-on.yml +881 -0
  64. data/data/plates/ca-pe.yml +592 -0
  65. data/data/plates/ca-qc.yml +1036 -0
  66. data/data/plates/ca-sk.yml +256 -0
  67. data/data/plates/ca-yt.yml +656 -0
  68. data/data/plates/ch.yml +1273 -0
  69. data/data/plates/cn.yml +1431 -0
  70. data/data/plates/cy.yml +688 -0
  71. data/data/plates/cz.yml +1179 -0
  72. data/data/plates/de.yml +553 -118
  73. data/data/plates/dk.yml +1647 -0
  74. data/data/plates/ee.yml +1275 -0
  75. data/data/plates/es.yml +228 -32
  76. data/data/plates/fi.yml +1271 -0
  77. data/data/plates/fr.yml +1265 -0
  78. data/data/plates/gb.yml +1188 -0
  79. data/data/plates/gr.yml +721 -0
  80. data/data/plates/hr.yml +860 -0
  81. data/data/plates/hu.yml +959 -0
  82. data/data/plates/ie.yml +775 -0
  83. data/data/plates/in.yml +1172 -0
  84. data/data/plates/is.yml +667 -0
  85. data/data/plates/it.yml +1317 -0
  86. data/data/plates/jp.yml +3650 -0
  87. data/data/plates/kr.yml +1375 -0
  88. data/data/plates/li.yml +1010 -0
  89. data/data/plates/lt.yml +879 -0
  90. data/data/plates/lu.yml +842 -0
  91. data/data/plates/lv.yml +924 -0
  92. data/data/plates/mc.yml +1024 -0
  93. data/data/plates/mt.yml +854 -0
  94. data/data/plates/mx.yml +1372 -0
  95. data/data/plates/my.yml +685 -0
  96. data/data/plates/nl.yml +44 -0
  97. data/data/plates/no.yml +1018 -0
  98. data/data/plates/nz.yml +1699 -0
  99. data/data/plates/pl.yml +1296 -0
  100. data/data/plates/pt.yml +847 -0
  101. data/data/plates/ro.yml +785 -0
  102. data/data/plates/se.yml +1091 -0
  103. data/data/plates/si.yml +1105 -0
  104. data/data/plates/sk.yml +1439 -0
  105. data/data/plates/sm.yml +1119 -0
  106. data/data/plates/th.yml +1150 -0
  107. data/data/plates/ua.yml +1672 -0
  108. data/data/plates/us-ak.yml +763 -0
  109. data/data/plates/us-al.yml +457 -0
  110. data/data/plates/us-ar.yml +427 -0
  111. data/data/plates/us-as.yml +454 -0
  112. data/data/plates/us-az.yml +430 -0
  113. data/data/plates/us-ca.yml +892 -0
  114. data/data/plates/us-co.yml +452 -0
  115. data/data/plates/us-ct.yml +427 -0
  116. data/data/plates/us-dc.yml +614 -0
  117. data/data/plates/us-de.yml +551 -0
  118. data/data/plates/us-fl.yml +319 -96
  119. data/data/plates/us-ga.yml +644 -0
  120. data/data/plates/us-gu.yml +658 -0
  121. data/data/plates/us-hi.yml +585 -0
  122. data/data/plates/us-ia.yml +438 -0
  123. data/data/plates/us-id.yml +531 -0
  124. data/data/plates/us-il.yml +516 -0
  125. data/data/plates/us-in.yml +324 -0
  126. data/data/plates/us-ks.yml +351 -0
  127. data/data/plates/us-ky.yml +770 -0
  128. data/data/plates/us-la.yml +568 -0
  129. data/data/plates/us-ma.yml +379 -0
  130. data/data/plates/us-md.yml +536 -0
  131. data/data/plates/us-me.yml +445 -0
  132. data/data/plates/us-mi.yml +408 -0
  133. data/data/plates/us-mn.yml +411 -0
  134. data/data/plates/us-mo.yml +356 -0
  135. data/data/plates/us-mp.yml +402 -0
  136. data/data/plates/us-ms.yml +432 -0
  137. data/data/plates/us-mt.yml +619 -0
  138. data/data/plates/us-nc.yml +602 -0
  139. data/data/plates/us-nd.yml +419 -0
  140. data/data/plates/us-ne.yml +483 -0
  141. data/data/plates/us-nh.yml +394 -0
  142. data/data/plates/us-nj.yml +547 -0
  143. data/data/plates/us-nm.yml +574 -0
  144. data/data/plates/us-nv.yml +655 -0
  145. data/data/plates/us-ny.yml +592 -0
  146. data/data/plates/us-oh.yml +404 -0
  147. data/data/plates/us-ok.yml +513 -0
  148. data/data/plates/us-or.yml +392 -0
  149. data/data/plates/us-pa.yml +506 -0
  150. data/data/plates/us-pr.yml +507 -0
  151. data/data/plates/us-ri.yml +445 -0
  152. data/data/plates/us-sc.yml +605 -0
  153. data/data/plates/us-sd.yml +428 -0
  154. data/data/plates/us-tn.yml +471 -0
  155. data/data/plates/us-tx.yml +535 -0
  156. data/data/plates/us-ut.yml +384 -0
  157. data/data/plates/us-va.yml +567 -0
  158. data/data/plates/us-vi.yml +489 -0
  159. data/data/plates/us-vt.yml +458 -0
  160. data/data/plates/us-wa.yml +484 -0
  161. data/data/plates/us-wi.yml +509 -0
  162. data/data/plates/us-wv.yml +446 -0
  163. data/data/plates/us-wy.yml +523 -0
  164. data/data/plates/va.yml +604 -0
  165. data/data/plates/za.yml +1141 -0
  166. data/data/vehicles.json +160653 -105090
  167. data/lib/vehicles/configuration.rb +17 -3
  168. data/lib/vehicles/dataset.rb +73 -18
  169. data/lib/vehicles/fuzzy.rb +115 -0
  170. data/lib/vehicles/http.rb +48 -0
  171. data/lib/vehicles/make.rb +36 -6
  172. data/lib/vehicles/mcp_server.rb +5 -5
  173. data/lib/vehicles/model.rb +21 -2
  174. data/lib/vehicles/plates/series.rb +172 -18
  175. data/lib/vehicles/plates/template_fill.rb +188 -0
  176. data/lib/vehicles/plates/templates.rb +162 -0
  177. data/lib/vehicles/plates.rb +12 -0
  178. data/lib/vehicles/providers/hosted_provider.rb +28 -55
  179. data/lib/vehicles/validators/vehicle_make_validator.rb +3 -1
  180. data/lib/vehicles/validators/vehicle_model_validator.rb +1 -1
  181. data/lib/vehicles/version.rb +1 -1
  182. data/lib/vehicles.rb +32 -16
  183. data/rakelib/data_refresh.rake +109 -0
  184. data/rakelib/plates_refresh.rake +29 -0
  185. data/sig/vehicles.rbs +18 -0
  186. metadata +164 -2
@@ -0,0 +1,551 @@
1
+ # plates/us-de.yml — Delaware (PRD-PLATES gate L2, mid-Atlantic group).
2
+ #
3
+ # DELAWARE IS THE SCHEMA STRESS TEST THE US/WORLD DOSSIER NAMED IN ADVANCE.
4
+ # The dossier flagged it as one of two rows that "break the fixed-width
5
+ # alphanumeric on a 6x12 rectangle assumption", because its serial is a BARE
6
+ # NUMBER of VARIABLE LENGTH with no leading zeros — 4 through 999999, one to six
7
+ # digits, nothing else. Every regex here quantifies rather than fixes width, and
8
+ # the no-leading-zeros rule lives in `regex_strict` exactly as PRD-PLATES §2.7
9
+ # says a charset restriction must.
10
+ #
11
+ # DELAWARE ALSO HAS THE OLDEST DESIGN STILL IN USE IN THE UNITED STATES. The
12
+ # gold-on-blue scheme dates to 1959 by the dossier's own reckoning and the plate
13
+ # has not changed colour since. That makes Delaware the one state in this group
14
+ # where "one series back" is a manufacturing change (flat to beveled), not a
15
+ # redesign — and it makes the dataset's `period` semantics do real work, because
16
+ # a Delaware plate's DESIGN cannot date it at all.
17
+ #
18
+ # WHAT IS SOURCED HERE AND WHAT IS NOT. Delaware's statute is unusually
19
+ # generous: 21 Del. C. § 2121 states the ONE-PLATE rule, the plate's required
20
+ # content, the vanity character caps AND — uniquely in this group — actual
21
+ # COLOUR VALUES in law, gold on blue, inverted to blue on gold for the officials
22
+ # and judges of § 2123. What the statute expressly declines to fix is everything
23
+ # else: "Number plates shall be of such design, size, material and color as the
24
+ # Department may determine." So Delaware legislates two colour schemes and then
25
+ # hands the whole design back to the Department in the same section.
26
+ #
27
+ # period_evidence / format_evidence vocabularies as in us-ny.yml.
28
+ jurisdiction: us-de
29
+ authority:
30
+ name: Delaware Division of Motor Vehicles (DelDOT DMV)
31
+ url: "https://www.dmv.de.gov/"
32
+ binding: vehicle
33
+ statute_edition: "Delaware Code Title 21 (Motor Vehicles), Chapter 21, Subchapter II (Plates), as served by delcode.delaware.gov and read 2026-08-02."
34
+
35
+ # ---------------------------------------------------------------------------
36
+ # artwork_risk — required per jurisdiction by PRD-PLATES §4.
37
+ # ---------------------------------------------------------------------------
38
+ artwork_risk:
39
+ posture: unresearched
40
+ basis: >-
41
+ NOTHING WAS FOUND, AND THAT IS THE FINDING. The US/world dossier already
42
+ recorded Delaware as a gap — 'Texas, Delaware: NOT ESTABLISHED. Neither
43
+ appears in the fetched source. Treat as default (copyrighted)' — and this
44
+ pass did not close it. Delaware has no entry at all in the Wikipedia survey
45
+ of subnational copyright status, there is no {{PD-DEGov}} template on
46
+ Wikimedia Commons, and the only Delaware-wide statement located is a bare
47
+ copyright notice in the delaware.gov portal footer ('(c)MMXVIII
48
+ Delaware.gov' / '(c)MMXVI Delaware.gov' depending on the page), which is an
49
+ assertion of rights with no scope, no grant and no reuse terms attached.
50
+ posture_default: >-
51
+ THE DEFAULT APPLIES: 17 U.S.C. § 105 puts only FEDERAL works in the public
52
+ domain and does not reach the states, so a Delaware state work is
53
+ COPYRIGHTED UNLESS DELAWARE SAYS OTHERWISE, and Delaware has not been found
54
+ to say otherwise. Treat as adverse in practice while recording the posture
55
+ honestly as UNRESEARCHED rather than as a positive finding of adversity —
56
+ the two are different claims and only one of them is evidenced.
57
+ what_to_chase: >-
58
+ Delaware's Government Information Center (gic@delaware.gov) is named on the
59
+ portal's own privacy page as the body that builds and maintains state web
60
+ content, and that page directs reuse questions to it. That is the single
61
+ address a verifier should write to. The Delaware Freedom of Information Act
62
+ (Title 29, Chapter 100 of the Delaware Code) is referenced on the same page
63
+ and is the statutory hook worth reading for a records-access-versus-copyright
64
+ answer of the kind Florida and New Jersey have.
65
+ emblem_rule: >-
66
+ RENDER PLACEHOLDER. Delaware's standard plate is the least graphical in the
67
+ group — a legend, a border and a number, no emblem at all — so the
68
+ placeholder rule costs almost nothing here. The specialty backgrounds
69
+ (ducks, lighthouses, horses) are the artwork surface and are L4 scope
70
+ regardless.
71
+ photograph_caution: >-
72
+ Standard §4 reading. One official DMV specialty-plate thumbnail was READ in
73
+ this pass to confirm the all-numeric serial form; it is not copied into the
74
+ dataset and no render derives from it.
75
+ sources:
76
+ - "https://delaware.gov/help/disclaimer.shtml # the Delaware portal's own page: a bare '(c) Delaware.gov' notice, the Government Information Center as content owner, a pointer to the Delaware FOIA (Title 29 Ch. 100), and NO reuse grant"
77
+ - "https://en.wikipedia.org/wiki/Copyright_status_of_works_by_subnational_governments_of_the_United_States # LOCATOR ONLY: Delaware has NO ENTRY in this survey - checked, not assumed"
78
+
79
+ # ---------------------------------------------------------------------------
80
+ # The US standards chain. Voluntary; J686 never quoted.
81
+ # ---------------------------------------------------------------------------
82
+ us_standards:
83
+ no_federal_mandate: true
84
+ chain: "SAE J686 -> AAMVA License Plate Standard Edition 3 (September 2025) -> voluntary state adoption."
85
+ aamva_edition_3:
86
+ dimensions_delegated: "AAMVA §3.1 sends dimensions and bolt holes to SAE J686 (paywalled, NOT obtained). Delaware states no dimension: § 2121 says only that plates 'shall be of such design, size, material and color as the Department may determine'. No sourced dimension is carried here."
87
+ legibility_comparison: "AAMVA §3.3 recommends legibility 'from distances of at least 75 feet' in daylight AND at night. Delaware legislates a DAYLIGHT-ONLY 100-foot rule that is both longer and narrower than AAMVA's: plates 'shall be of sufficient size to be plainly readable at a distance of 100 feet during daylight'. Two different standards, neither derived from the other, and the state's is law while AAMVA's is advice."
88
+ replacement_cycle: "AAMVA §1.1 recommends a cycle 'not to exceed 7 to 10 years'. DELAWARE IS THE STRONGEST COUNTEREXAMPLE IN THE COUNTRY: its design has run since 1959 and its serial space has never been reset, which is only possible because Delaware does not replace plates on a cycle at all. No replacement provision was located in Subchapter II."
89
+ source: "https://www.aamva.org/getmedia/646bcc8a-219b-47d8-b5cd-726240473163/License-Plate-Standard-Edition-3_September-2025-Update.pdf"
90
+ folklore_caution: "The '1956 AMA standardization agreement' is UNCITED in its Wikipedia source and is recorded as COMMONLY REPEATED, UNSOURCED. Delaware states no dimension of its own to put in its place."
91
+
92
+ # ---------------------------------------------------------------------------
93
+ # Display rules. Delaware is a ONE-PLATE, REAR-ONLY state and says so in law.
94
+ # ---------------------------------------------------------------------------
95
+ display_rules:
96
+ default: "ONE plate, REAR. 21 Del. C. § 2126: 'The number plate assigned to a motor vehicle shall at all times be attached to the rear of the motor vehicle.' § 2121 correspondingly has the Department furnish ONE number plate per vehicle. Delaware is the cleanest one-plate statement in this group — contrast Pennsylvania, whose rear-only practice could not be pinned to any instrument."
97
+ plate_content: "§ 2121: 'Each number plate shall have displayed thereon the registration number assigned to the vehicle, the name of this State' together with expiration information."
98
+ design_delegation: "§ 2121: 'Number plates shall be of such design, size, material and color as the Department may determine.' The legislature fixes the CONTENT and then delegates the FORM — with the two colour exceptions below, which it does not delegate."
99
+ mounting: "§ 2126: securely fastened 'at a height not less than 12 inches from the ground, measuring from the bottom of such plate ... in a place and position to be clearly visible'."
100
+ legibility: "'Each number plate and identifying letters and numerals thereon ... shall be of sufficient size to be plainly readable at a distance of 100 feet during daylight.' SOURCING CAVEAT: the extraction of Subchapter II did not preserve which section carries this sentence (§ 2121 or § 2126); a verifier should pin the subsection before it is quoted with a section number."
101
+ obstruction: "§ 2126: 'No number plate, or any portion thereof, shall be covered with any tinted material, nor shall any other material be placed on or around a number plate which would conceal and/or obscure any information.'"
102
+ penalty: "§ 2126: fines from $25 to $200 depending on the offence."
103
+ ownership: "§ 2125 is titled 'Ownership of plates' — Delaware legislates the plate's ownership as a distinct question from the vehicle's, which is the statutory root of the state's famous low-number transfer market. The section text was not extracted (recorded gap), but its existence is the pointer a verifier needs."
104
+ sources:
105
+ - "https://delcode.delaware.gov/title21/c021/sc02/index.html # 21 Del. C. Ch. 21 Subchapter II: § 2121 one plate, plate content, the design/size/material/colour delegation, the vanity colour and character rules; § 2125 ownership of plates; § 2126 rear attachment, 12-inch height, the tinted-material prohibition and the $25-$200 penalties; the 100-foot daylight legibility rule"
106
+
107
+ series:
108
+
109
+ # =========================================================================
110
+ # THE CURRENT STANDARD-ISSUE SERIES.
111
+ # =========================================================================
112
+ - id: us-de-standard-beveled
113
+ class: standard
114
+ categories: [car, van, truck, bus]
115
+ period: { start: 2008 }
116
+ period_evidence: secondary-locator-unverified
117
+ format_evidence: statutory
118
+ matching: strict
119
+ format:
120
+ pattern: "999999"
121
+ regex: '\A\d{1,6}\z'
122
+ regex_strict: '\A[1-9]\d{0,5}\z'
123
+ charset:
124
+ excluded: []
125
+ notes: >-
126
+ DELAWARE'S SERIAL IS A NUMBER, NOT A CODE. There are no letters in an
127
+ ordinary Delaware passenger serial at all, the width is genuinely
128
+ VARIABLE from one digit to six, and the reported rule is that there are
129
+ NO LEADING ZEROS — a one-digit plate is '4', not '000004'. The no-
130
+ leading-zeros rule is what `regex_strict` carries; `regex` cannot,
131
+ because PRD-PLATES §2.7 requires `regex` to round-trip against
132
+ `pattern` and a pattern of six 9s generates leading zeros freely.
133
+ Reported issued range: 4 to 999999, with 1, 2 and 3 reserved for the
134
+ Governor, the Lieutenant Governor and the Secretary of State
135
+ respectively.
136
+ pattern_note: >-
137
+ `pattern` shows the SIX-DIGIT form because that is the modal printed
138
+ plate and a pattern must be a concrete printed shape; the regex is what
139
+ carries the variability. A consumer must read the regex, not the pattern,
140
+ for width. This is the shape PRD-PLATES §2.2 anticipated when it said
141
+ Delaware's variable-width serials mean 'regexes quantify rather than fix
142
+ width'.
143
+ progression: "strictly sequential ascending; the space has NEVER been reset, which is why Delaware serials are an unusually good age proxy — a low number is an old registration or an expensive one."
144
+ design:
145
+ background: { color: "#00305E", finish: retroreflective, hex_basis: observed }
146
+ foreground: "#C8A951"
147
+ colour_note: >-
148
+ DELAWARE IS THE ONLY STATE IN THIS GROUP WITH A COLOUR SCHEME IN
149
+ STATUTE. § 2121 prescribes 'Gold letters on a blue background' — for the
150
+ vanity plates in terms, and the ordinary plate carries the same scheme
151
+ by long practice. The HEX VALUES are still `observed`, because the
152
+ statute names colours, not values: 'gold' and 'blue' are the claim, and
153
+ the exact navy and old-gold recorded here are read off official DMV
154
+ imagery. Naming a colour in law and specifying it are different acts and
155
+ the dataset should not blur them.
156
+ border: { present: true, color: "#C8A951", note: "gold border, observed" }
157
+ legend_top: "THE FIRST STATE"
158
+ legend_bottom: "Delaware"
159
+ graphic: { present: false, rendered: none, description: "the standard Delaware plate carries NO graphic at all - legend, border, number. It is the most minimal standard plate in the mid-Atlantic group and arguably in the country." }
160
+ emblem: { present: false }
161
+ band: { side: none }
162
+ rear_differs: false
163
+ manufacture: "BEVELED EDGES distinguish this base from the flat plates before it (locator). The design is otherwise unchanged."
164
+ dimension_note: "NO SOURCED DIMENSION - § 2121 delegates size to the Department and no departmental specification was obtained."
165
+ replacement_cycle:
166
+ years: null
167
+ note: "NO REPLACEMENT PROVISION LOCATED in Subchapter II. Delaware's design has run continuously since 1959 by the dossier's reckoning, which is only possible without a replacement cycle. This is the pole opposite Florida's statutory 10 years."
168
+ secondary_market:
169
+ note: >-
170
+ DELAWARE IS THE ONLY US JURISDICTION WITH A SUBSTANTIAL SECONDARY MARKET
171
+ IN THE NUMBER ITSELF, and the statutory root is § 2125 ('Ownership of
172
+ plates'). The dossier records sale prices of $185,000 for #9 (1994),
173
+ $675,000 for #6 (2008) and roughly $70,000 for a three-digit plate
174
+ (2023). Recorded because it is the clearest real-world demonstration
175
+ that in some jurisdictions the registration mark is PROPERTY separable
176
+ from the vehicle — a `binding` question the schema already models for
177
+ Switzerland's owner-bound plates.
178
+ evidence: "locator-grade via the US/world dossier; no Delaware primary for any sale price was sought"
179
+ region_encoding: none
180
+ sources:
181
+ - "https://delcode.delaware.gov/title21/c021/sc02/index.html # 21 Del. C. § 2121: one plate per vehicle, 'the registration number assigned to the vehicle, the name of this State', 'Number plates shall be of such design, size, material and color as the Department may determine', 'Gold letters on a blue background'; § 2125 ownership of plates; § 2126 rear display"
182
+ - "https://www.dmv.de.gov/VehicleServices/tags/index.shtml # DelDOT DMV's own plate index - the agency-page-in-force evidence that this scheme is current"
183
+ - "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Delaware # LOCATOR ONLY (PRD-PLATES §4): the 2008 beveled-edge revision, the 4-999999 range, the 1/2/3 reservations for Governor / Lieutenant Governor / Secretary of State, the no-leading-zeros rule and the low-number market"
184
+ notes: >-
185
+ DELAWARE STANDARD ISSUE — VARIABLE-WIDTH NUMERIC, THE SCHEMA'S NAMED
186
+ STRESS TEST. `start: 2008` is locator-grade and marks a MANUFACTURING
187
+ change (flat to beveled), not a design change: the colours, the legend and
188
+ the serial space all run continuously across it. That has a consequence
189
+ worth stating plainly for consumers — A DELAWARE PLATE'S DESIGN CARRIES NO
190
+ DATE INFORMATION AT ALL. Every other state in this group can be roughly
191
+ dated from its base; Delaware can only be dated from its NUMBER, and only
192
+ by someone holding the issuance history. This is also why the two Delaware
193
+ series overlap in 2008 with distinct notes: nothing was recalled, so 1969
194
+ plates and 2008 plates are both current registrations today.
195
+
196
+ # =========================================================================
197
+ # ONE SERIES BACK — a manufacturing change, not a redesign.
198
+ # =========================================================================
199
+ - id: us-de-standard-flat
200
+ class: standard
201
+ categories: [car, van, truck, bus]
202
+ period: { start: 1969, end: 2008 }
203
+ period_evidence: secondary-locator-unverified
204
+ format_evidence: statutory
205
+ matching: strict
206
+ format:
207
+ pattern: "999999"
208
+ regex: '\A\d{1,6}\z'
209
+ regex_strict: '\A[1-9]\d{0,5}\z'
210
+ charset: { notes: "identical to the current base - the same continuous numeric space, no leading zeros. The 1969 boundary is a manufacturing and issue-run boundary only." }
211
+ design:
212
+ background: { color: "#00305E", finish: retroreflective, hex_basis: observed }
213
+ foreground: "#C8A951"
214
+ legend_top: "THE FIRST STATE"
215
+ legend_bottom: "Delaware"
216
+ graphic: { present: false, rendered: none }
217
+ emblem: { present: false }
218
+ band: { side: none }
219
+ manufacture: "FLAT (no beveled edge) - the only reported difference from the current base."
220
+ region_encoding: none
221
+ sources:
222
+ - "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Delaware # LOCATOR ONLY: 1969 base, flat, 'Screened gold serial on reflective dark blue plate with gold border', 'THE FIRST STATE' centred at top - identical description to the current base but for the bevel"
223
+ notes: >-
224
+ DELAWARE, FLAT (1969-2008). Recorded as its own series because
225
+ PRD-PLATES §2.3 makes DESIGN difference a series test and the physical
226
+ construction differs — but recorded with the honest caveat that this is
227
+ the THINNEST series boundary in the mid-Atlantic group. Format, colours,
228
+ legends and serial space are all identical across it. A consumer that
229
+ cannot distinguish a beveled Delaware plate from a flat one will get the
230
+ right answer to every format question and the wrong answer only to
231
+ 'which series', which is the correct failure mode for a boundary this
232
+ subtle. Both remain valid: Delaware recalls nothing.
233
+
234
+ # =========================================================================
235
+ # CORE DISTINCT CLASSES — Delaware serialises each in its own space, and the
236
+ # marker letters are the whole grammar.
237
+ # =========================================================================
238
+ - id: us-de-motorcycle
239
+ class: motorcycle
240
+ categories: [motorcycle]
241
+ period: { start: 2008 }
242
+ period_evidence: instrument-in-force-upper-bound
243
+ format_evidence: secondary-locator-unverified
244
+ matching: strict
245
+ format:
246
+ pattern: "99999"
247
+ regex: '\A\d{1,5}\z'
248
+ regex_strict: '\A[1-9]\d{0,4}\z'
249
+ charset: { notes: "reported five-digit numeric motorcycle serial in its own space, with 'M/C' printed at the bottom left rather than encoded in the serial. No leading zeros, on the same reasoning as the passenger series." }
250
+ design:
251
+ background: { color: "#00305E", finish: retroreflective, hex_basis: observed }
252
+ foreground: "#C8A951"
253
+ legend_top: "THE FIRST STATE"
254
+ legend_bottom: "M/C"
255
+ legend_rule: "the CLASS MARKER IS A LEGEND, NOT A SERIAL CHARACTER - 'M/C' sits at the bottom left of the plate. A parser reading only the serial cannot tell a Delaware motorcycle plate from a low-numbered passenger plate; it must read the legend. That is a genuine ambiguity in the Delaware system and is stated rather than hidden."
256
+ emblem: { present: false }
257
+ dimension_note: "NO SOURCED DIMENSION."
258
+ vanity_note: "§ 2121(i) caps a MOTORCYCLE vanity plate at five characters against seven for a passenger vanity plate, and charges the same $40 annually - statutory confirmation that Delaware treats the motorcycle series as its own space."
259
+ region_encoding: none
260
+ sources:
261
+ - "https://delcode.delaware.gov/title21/c021/sc02/index.html # 21 Del. C. § 2121(i): motorcycle vanity plates 'not to exceed 5 in number', $40 annually"
262
+ - "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Delaware # LOCATOR ONLY: five-digit numeric motorcycle serial with M/C at bottom left"
263
+ notes: >-
264
+ MOTORCYCLE. THE AMBIGUITY IS THE POINT: because Delaware's motorcycle
265
+ serial is all-numeric in a parallel space, the string '12345' is a
266
+ well-formed serial in BOTH the passenger and the motorcycle series and no
267
+ amount of regex resolves it. A parse API must return both candidates for
268
+ Delaware numerics, which is exactly the multi-parse behaviour PRD-PLATES
269
+ §6's prior-art survey admired in @randock's formatter.
270
+
271
+ - id: us-de-trailer
272
+ class: trailer
273
+ categories: [trailer]
274
+ period: { start: 2008 }
275
+ period_evidence: instrument-in-force-upper-bound
276
+ format_evidence: secondary-locator-unverified
277
+ matching: strict
278
+ format:
279
+ pattern: "T999999"
280
+ regex: '\AT\d{1,6}\z'
281
+ charset: { notes: "reported trailer serial: a literal T prefix on the numeric space. Unlike the motorcycle series, the trailer class IS encoded in the serial, which makes trailer plates unambiguous where motorcycle plates are not." }
282
+ design:
283
+ background: { color: "#00305E", finish: retroreflective, hex_basis: observed }
284
+ foreground: "#C8A951"
285
+ legend_top: "THE FIRST STATE"
286
+ emblem: { present: false }
287
+ region_encoding: none
288
+ sources:
289
+ - "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Delaware # LOCATOR ONLY: trailer T123456"
290
+ notes: "TRAILER. Locator-grade format on a statutory class. The T prefix makes this the one Delaware class a parser can identify from the string alone."
291
+
292
+ - id: us-de-dealer
293
+ class: dealer
294
+ categories: [car, van, truck, bus, motorcycle, trailer]
295
+ period: { start: 2008 }
296
+ period_evidence: statutory-authority-undated
297
+ format_evidence: secondary-locator-unverified
298
+ matching: strict
299
+ binding: business
300
+ format:
301
+ pattern: "D99999"
302
+ regex: '\AD\d{1,5}\z'
303
+ charset: { notes: "reported dealer serial: a literal D prefix on the numeric space." }
304
+ design:
305
+ background: { color: "#00305E", finish: retroreflective, hex_basis: observed }
306
+ foreground: "#C8A951"
307
+ legend_top: "THE FIRST STATE"
308
+ emblem: { present: false }
309
+ region_encoding: none
310
+ sources:
311
+ - "https://delcode.delaware.gov/title21/c021/sc02/index.html # 21 Del. C. § 2124: 'Number plates for manufacturers, dealers, and transporters' - the statutory class, which distinguishes THREE trade categories where most states distinguish one or two"
312
+ - "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Delaware # LOCATOR ONLY: dealer D12345"
313
+ notes: >-
314
+ DEALER. `binding: business`. § 2124's heading names MANUFACTURERS, DEALERS
315
+ AND TRANSPORTERS as three trade categories in one section — the same
316
+ three-way split Florida draws between Dealer and Manufacturer legends,
317
+ plus a transporter category Florida lacks. Whether Delaware serialises
318
+ them apart was not established (recorded gap); only the dealer form was
319
+ reported.
320
+
321
+ - id: us-de-temporary
322
+ class: temporary
323
+ categories: [car, van, truck, bus, motorcycle, trailer]
324
+ period: { start: 2021 }
325
+ period_evidence: secondary-locator-unverified
326
+ format_evidence: secondary-locator-unverified
327
+ matching: strict
328
+ format:
329
+ pattern: "XA999999"
330
+ regex: '\AX[ABCDPQ]\d{6}\z'
331
+ charset:
332
+ notes: >-
333
+ Reported temporary-plate form: a literal X, a series letter, and six
334
+ numerals. The series letters reported in use are A, B, C, D, P and Q
335
+ 'as of June 19, 2021', which the locator gives as a dated observation.
336
+ The regex enumerates exactly those six letters rather than allowing any
337
+ letter, so it is narrow by any letter subsequently opened — the safe
338
+ direction. Delaware's temporary plates are reported to have EVOLVED
339
+ from an all-numeric form to this XA/XB/... scheme, i.e. the X prefix is
340
+ itself a generation marker.
341
+ design:
342
+ background: { finish: unknown }
343
+ legend_top: "THE FIRST STATE"
344
+ emblem: { present: false }
345
+ note: "no design source obtained for the temporary plate stock (recorded gap)."
346
+ validity: "not sourced. §§ 2129, 2130 and 2131 of Title 21 govern issuance by the Department, issuance by dealers and repair technicians, and 'Effect and duration of temporary registration plates' respectively — § 2131 is the section a verifier should pull for the validity period."
347
+ region_encoding: none
348
+ sources:
349
+ - "https://delcode.delaware.gov/title21/c021/sc02/index.html # 21 Del. C. §§ 2129, 2130, 2131: issuance of temporary registration plates, issuance by dealers and repair technicians, and the effect and duration of temporary plates - THREE statutory sections on temporary plates, the most detailed treatment in this group"
350
+ - "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Delaware # LOCATOR ONLY: XA123456 form and the XA/XB/XC/XD/XP/XQ series letters as of 19 June 2021"
351
+ notes: >-
352
+ TEMPORARY. Delaware devotes three statutory sections to temporary plates
353
+ where most states devote one clause, including a section specifically for
354
+ issuance by REPAIR TECHNICIANS — a category no other state in this group
355
+ names. The class and its structure are statutory; the serial form is
356
+ locator-grade; § 2131 (duration) is the named gap.
357
+
358
+ - id: us-de-state-owned
359
+ class: government
360
+ categories: [car, van, truck, bus]
361
+ period: { start: 2008 }
362
+ period_evidence: instrument-in-force-upper-bound
363
+ format_evidence: secondary-locator-unverified
364
+ matching: strict
365
+ binding: business
366
+ format:
367
+ pattern: "S9999"
368
+ regex: '\AS\d{1,4}\z'
369
+ charset: { notes: "reported state-owned vehicle serial: a literal S prefix on the numeric space." }
370
+ design:
371
+ background: { color: "#00305E", finish: retroreflective, hex_basis: observed }
372
+ foreground: "#C8A951"
373
+ legend_top: "THE FIRST STATE"
374
+ emblem: { present: false }
375
+ region_encoding: none
376
+ sources:
377
+ - "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Delaware # LOCATOR ONLY: state-owned S1234"
378
+ notes: >-
379
+ STATE-OWNED FLEET. Distinct from the OFFICIALS series below, which is a
380
+ different statutory animal: this plate goes on a vehicle the State owns,
381
+ whereas § 2123 plates go to a PERSON holding an office and carry inverted
382
+ colours. Two government-class series with different bases, different
383
+ colours and different purposes.
384
+
385
+ - id: us-de-officials
386
+ class: government
387
+ categories: [car, van, truck]
388
+ period: { start: 2008 }
389
+ period_evidence: statutory-authority-undated
390
+ format_evidence: secondary-locator-unverified
391
+ matching: recall-only
392
+ format:
393
+ pattern: "999"
394
+ regex: '\A\d{1,5}\z'
395
+ charset:
396
+ notes: >-
397
+ NO FORMAT SOURCE WAS OBTAINED FOR § 2123 PLATES. What IS known is that
398
+ the three lowest numbers in the whole Delaware space — 1, 2 and 3 —
399
+ are reported reserved for the Governor, the Lieutenant Governor and
400
+ the Secretary of State, so the officials' plates draw from the same
401
+ numeric alphabet. `matching: recall-only` because this regex is a
402
+ deliberately wide numeric catch-all rather than a sourced grammar: a
403
+ match says only 'this is a Delaware-shaped number'.
404
+ design:
405
+ background: { color: "#C8A951", finish: retroreflective, hex_basis: observed }
406
+ foreground: "#00305E"
407
+ colour_note: >-
408
+ THE COLOURS ARE INVERTED, AND THAT IS IN STATUTE. § 2121 prescribes 'Gold
409
+ letters on a blue background, EXCEPT for license plates provided for in
410
+ § 2123', which take 'blue letters on a gold background'. § 2123 is
411
+ 'Number plates for state/federal officers and judges'. So Delaware
412
+ legislates a colour INVERSION as the mark of high office — the only
413
+ statutory colour distinction found anywhere in the mid-Atlantic group,
414
+ and a rare case of a US legislature specifying a design VALUE rather
415
+ than delegating it.
416
+ legend_top: "THE FIRST STATE"
417
+ emblem: { present: false }
418
+ region_encoding: none
419
+ sources:
420
+ - "https://delcode.delaware.gov/title21/c021/sc02/index.html # 21 Del. C. § 2121: 'Gold letters on a blue background, except for license plates provided for in § 2123 ... blue letters on a gold background'; § 2123 'Number plates for state/federal officers and judges'"
421
+ - "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Delaware # LOCATOR ONLY: numbers 1, 2 and 3 reserved for the Governor, Lieutenant Governor and Secretary of State"
422
+ notes: >-
423
+ OFFICERS AND JUDGES (§ 2123). Carried as `recall-only` because the COLOUR
424
+ claim is statutory and valuable while the FORMAT claim does not exist —
425
+ and the schema has no way to record a series with a sourced design and no
426
+ sourced grammar except by making the grammar honestly wide. That is
427
+ precisely what §2.7's recall-only tier is for, and this is its third use
428
+ in the mid-Atlantic group after New York's vintage plates and
429
+ Pennsylvania's motorcycles.
430
+
431
+ # =========================================================================
432
+ # VANITY — Delaware puts the character cap and the colours in the STATUTE.
433
+ # =========================================================================
434
+ - id: us-de-vanity
435
+ class: personalized
436
+ categories: [car, van, truck, bus, motorcycle]
437
+ period: { start: 2008 }
438
+ period_evidence: statutory-authority-undated
439
+ format_evidence: statutory
440
+ matching: strict
441
+ format:
442
+ pattern: "LLLLLLL"
443
+ regex: '\A[A-Z0-9]{1,7}\z'
444
+ charset:
445
+ notes: >-
446
+ 21 Del. C. § 2121(h): a vanity plate's characters are 'not to exceed 7
447
+ in number', at a fee of '$40 annually for each plate in addition to the
448
+ regular registration fee'. § 2121(i) caps a motorcycle vanity plate at
449
+ five. THE CAP IS IN THE STATUTE, not on an agency page — Delaware is
450
+ one of only two jurisdictions in this group where that is true (New
451
+ York's eight-character cap in VTL § 404 is the other), and the
452
+ strongest of the two because § 2121 also fixes the colours in the same
453
+ section.
454
+ fee: "$40 annually per plate, in addition to the regular registration fee, for both passenger and motorcycle vanity plates (21 Del. C. § 2121(h), (i))"
455
+ design:
456
+ background: { color: "#00305E", finish: retroreflective, hex_basis: observed }
457
+ foreground: "#C8A951"
458
+ colour_note: "§ 2121: 'Gold letters on a blue background' - stated for vanity plates in terms."
459
+ legend_top: "THE FIRST STATE"
460
+ emblem: { present: false }
461
+ region_encoding: none
462
+ sources:
463
+ - "https://delcode.delaware.gov/title21/c021/sc02/index.html # 21 Del. C. § 2121(h) seven-character vanity cap, 'Gold letters on a blue background', $40 annual fee; § 2121(i) five-character motorcycle vanity cap, $40 annual fee; § 2121 also covers SPECIAL AMATEUR RADIO plates in the same section"
464
+ notes: >-
465
+ VANITY. The section heading is 'Number and registration plates; special
466
+ amateur radio and vanity plates', which bundles AMATEUR RADIO CALL-SIGN
467
+ plates into the same provision — a class this file does not model because
468
+ no format source was obtained, but which is worth recording as present:
469
+ an amateur radio plate's serial is an FCC-issued call sign, i.e. a serial
470
+ Delaware does not assign at all. That is a genuinely unusual binding and
471
+ belongs in a later gate.
472
+
473
+ # =========================================================================
474
+ # SPECIALTY — THE PROGRAM INDEX, per PRD-PLATES §2.5.
475
+ # =========================================================================
476
+ - id: us-de-specialty-index
477
+ class: specialty
478
+ categories: [car, truck]
479
+ period: { start: 2008 }
480
+ period_evidence: agency-page-in-force
481
+ format_evidence: official-agency-text
482
+ matching: strict
483
+ format:
484
+ pattern: "999999"
485
+ regex: '\A\d{1,6}\z'
486
+ regex_strict: '\A[1-9]\d{0,5}\z'
487
+ charset: { notes: "specialty plates carry the ORDINARY Delaware numeric serial on an alternative background - confirmed by reading DelDOT DMV's own specialty thumbnails, which show a six-digit numeric sample. The numeric space and the no-leading-zeros rule are unchanged." }
488
+ design:
489
+ background: { finish: retroreflective }
490
+ note: "one background or organisational design per approved programme; the designs themselves are L4 scope (PRD-PLATES §2.5) and none is described here"
491
+ emblem: { present: true, rendered: placeholder }
492
+ eligibility_note: "DelDOT DMV: 'Special plates are restricted to passenger vehicles or trucks with a 3/4-ton or less manufacturers gross vehicle weight rating.' A WEIGHT CEILING ON SPECIALTY ELIGIBILITY - the only weight-keyed plate rule in this group, and the reason this series' categories are [car, truck] and not the full list."
493
+ program_index:
494
+ count_official: 149
495
+ count_official_method: >-
496
+ ENUMERATED FROM THE AGENCY'S OWN COMPLETE LIST. DelDOT DMV publishes
497
+ 'Delaware License Plates - All Special Tags', alphabetised A-Z; 149
498
+ distinct plate images were counted on it on 2026-08-02. The agency
499
+ states no number itself, so this is OUR COUNT OF THE AGENCY'S OWN LIST
500
+ and is labelled as such — not an agency claim, and not a locator's.
501
+ count_caveat: "the count is of DISTINCT IMAGE ENTRIES on the all-tags page and will drift as the page changes; snapshot the date with the number. Military and college plates have their own sub-lists which are included in the all-tags page."
502
+ official_all_tags_url: "https://www.dmv.de.gov/VehicleServices/tags/index.shtml?dc=tags_all"
503
+ official_military_url: "https://www.dmv.de.gov/VehicleServices/tags/index.shtml?dc=tags_military"
504
+ official_college_url: "https://www.dmv.de.gov/VehicleServices/tags/index.shtml?dc=tags_college"
505
+ index_url: "https://www.dmv.de.gov/VehicleServices/tags/index.shtml"
506
+ creation_threshold: >-
507
+ DelDOT DMV, in its own words: 'The law requires a minimum of 200
508
+ applications from a specific organization before the Division may approve
509
+ the issuance of the plate. There is an exemption for university or high
510
+ school alumni associations who only need 25 applications. Exemptions have
511
+ also been written into the law for a number of other organizations, that
512
+ have been authorized a plate with less than 200 applications.' THE
513
+ HIGHEST CREATION THRESHOLD IN THIS GROUP by a factor of eight — compare
514
+ Maryland's 25 owners per class under Md. Transp. § 13-619.
515
+ black_tag_programme: >-
516
+ DELAWARE RUNS A HISTORIC BLACK PORCELAIN TAG PROGRAMME THROUGH AN OUTSIDE
517
+ VENDOR, linked from the DMV's own plate index at dhptags.com. It is
518
+ recorded here because a vendored plate programme is the same structural
519
+ arrangement the dossier found in Texas (specialty vendored to
520
+ MyPlates.com) and it changes who holds the authoritative list. NOT
521
+ researched further in this pass; the programme's serial rules and its
522
+ relationship to the ordinary numeric space are a recorded gap.
523
+ churn_note: "no discontinuation rule was located in Subchapter II; recorded gap."
524
+ region_encoding: none
525
+ sources:
526
+ - "https://www.dmv.de.gov/VehicleServices/tags/index.shtml # DelDOT DMV: the specialty overview, the 3/4-ton weight ceiling, the 200-application creation threshold and the 25-application alumni exemption, the $50 Keep Delaware Beautiful price, and the link to the Delaware Black Tag Program"
527
+ - "https://www.dmv.de.gov/VehicleServices/tags/index.shtml?dc=tags_all # 'Delaware License Plates - All Special Tags', the agency's own complete alphabetical list - the source of the 149 count"
528
+ notes: >-
529
+ THE SPECIALTY PROGRAM INDEX. Delaware is the BEST specialty case in the
530
+ mid-Atlantic group: unlike Pennsylvania (search box, unenumerable) and New
531
+ Jersey (five tracks, no total), DelDOT DMV publishes one complete
532
+ alphabetical list of every special tag it offers, so an honest count is
533
+ available by enumeration. It also publishes the statutory creation
534
+ threshold in plain words, which is the fact that actually predicts how a
535
+ state's programme grows: at 200 applications Delaware's bar is eight times
536
+ Maryland's, and its 149 designs against Maryland's unknown and New York's
537
+ 206 is the shape that bar produces.
538
+
539
+ # ---------------------------------------------------------------------------
540
+ # GAPS.
541
+ # ---------------------------------------------------------------------------
542
+ gaps:
543
+ - "ARTWORK POSTURE UNRESEARCHED — no Delaware copyright statement, no case, no Commons tag. The default (copyrighted) applies. Write to the Government Information Center; read Title 29 Ch. 100 (Delaware FOIA)."
544
+ - "The 100-foot daylight legibility sentence could not be attributed to a specific section (§ 2121 or § 2126) from the subchapter extraction."
545
+ - "§ 2125 (Ownership of plates) text not extracted — it is the statutory root of the low-number market and should be pulled."
546
+ - "§ 2131 (Effect and duration of temporary registration plates) not extracted — the temporary validity period is unsourced."
547
+ - "NO SOURCED PLATE DIMENSION — § 2121 delegates size to the Department and no departmental specification was found."
548
+ - "Colour VALUES are observed; the statute names 'gold' and 'blue' without specifying them."
549
+ - "Whether manufacturers, dealers and transporters (§ 2124) are serialised apart was not established."
550
+ - "The Delaware Black Tag Program (dhptags.com) is unresearched — a vendored programme with unknown serial rules."
551
+ - "Amateur radio call-sign plates (§ 2121) are not modelled: the serial is FCC-issued, not state-issued, which is a binding the schema has not yet met."