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,507 @@
1
+ # plates/us-pr.yml — Puerto Rico (PRD-PLATES gate L2, territories group).
2
+ #
3
+ # WHY PUERTO RICO IS THE BEST-SOURCED TERRITORY IN THIS GROUP: its plate law is
4
+ # a single consolidated statute — Ley Núm. 22 de 7 de enero de 2000, "Ley de
5
+ # Vehículos y Tránsito de Puerto Rico" — served as a 210-page scan by the
6
+ # Commonwealth's own Biblioteca Virtual (Oficina de Gerencia y Presupuesto).
7
+ # Every format, display, class and specialty-program claim below cites an
8
+ # ARTÍCULO of that law. The scan is image-only; it was OCR'd locally for this
9
+ # pass, so Spanish diacritics in the quoted fragments are OCR-lossy and the
10
+ # quotes are recorded as SUBSTANCE, not as verbatim transcription. That
11
+ # limitation is stated once here and applies to every § quote in this file.
12
+ #
13
+ # THE DELEGATION TRAP, which is the single most important structural fact about
14
+ # Puerto Rico plates: Art. 2.18 authorises the Secretary to fix "el diseño,
15
+ # tamaño, colores, composición y otros detalles físicos de las tablillas, así
16
+ # como la cantidad de tablillas que utilizarán los diferentes vehículos" BY
17
+ # REGLAMENTO. So PR law fixes WHO issues, WHERE the plate goes and WHAT it
18
+ # carries — and delegates every renderable property to a departmental
19
+ # regulation that was NOT obtained in this pass. Design, size, colour and even
20
+ # the NUMBER OF PLATES are therefore recorded as gaps, not guessed. This is the
21
+ # same shape as Guam (16 GCA § 7120(c)) and it is the territory pattern.
22
+ #
23
+ # WHAT IS DELIBERATELY NOT HERE (PRD-PLATES §2.5): individual specialty DESIGNS.
24
+ # `us-pr-specialty-index` indexes the SEVEN statutory programmes and nothing
25
+ # more.
26
+ jurisdiction: us-pr
27
+ authority:
28
+ name: Departamento de Transportación y Obras Públicas (DTOP) — Directoría de Servicios al Conductor (DISCO/CESCO)
29
+ url: "https://www.dtop.pr.gov/"
30
+ binding: vehicle
31
+ statute_edition: >-
32
+ Ley Núm. 22 de 7 de enero de 2000, "Ley de Vehículos y Tránsito de Puerto
33
+ Rico", as served (210 pp, scanned) by bvirtual.ogp.pr.gov in this pass. The
34
+ served copy carries no amendment-currency statement, so the edition read is an
35
+ UPPER BOUND on nothing and a LOWER BOUND on everything: articles quoted here
36
+ are in the served text, and later amendments were not checked (recorded gap).
37
+
38
+ # ---------------------------------------------------------------------------
39
+ # artwork_risk — required per jurisdiction by PRD-PLATES §4 / §7.1.
40
+ # ---------------------------------------------------------------------------
41
+ artwork_risk:
42
+ posture: public-domain-favourable
43
+ basis: >-
44
+ Puerto Rico is the second-strongest public-domain posture found anywhere in
45
+ the US pass, after Florida — and it is the ONLY US territory that Wikimedia
46
+ Commons lists alongside the PD states. Commons' own summary row for the
47
+ United States reads: "Government = Federal, California, Florida, Georgia,
48
+ Massachusetts, PUERTO RICO: public domain / Other states: copyrighted", and
49
+ the tag {{PD-PRGov}} exists and is in active use for "media created by the
50
+ Commonwealth of Puerto Rico". The tag's cited basis is the US Copyright
51
+ Office's Compendium of US Copyright Office Practices (Third Edition),
52
+ Chapter 300.
53
+ caveat: >-
54
+ RECORDED HONESTLY RATHER THAN OVERSTATED. Commons itself flags the
55
+ limitation in terms: "Work of Organized Territories has less clear status;
56
+ the first link in this section shows strong evidence that Puerto Rico's
57
+ works are in the public domain, while the second link prevaricates." Puerto
58
+ Rico is an ORGANIZED territory, so it sits exactly in that contested space.
59
+ Treat the posture as favourable-but-contested, not as settled law, and note
60
+ that no PR statute or judicial decision on the point was located in this
61
+ pass (contrast Florida, where Microdecisions v. Skinner is squarely on
62
+ point).
63
+ edicts: >-
64
+ Independent of the above, EDICTS OF GOVERNMENT are public domain at every
65
+ level ({{PD-US-GovEdict}}), so Ley 22-2000 itself — the source of every
66
+ factual claim in this file — is unambiguously free to use. This is the
67
+ cleanest legal path for Puerto Rico and it is the one taken here.
68
+ emblem_rule: >-
69
+ PRD-PLATES §3's placeholder default applies to the FORT / GARITA graphic
70
+ reported on the current base and to any Commonwealth coat of arms. Seals and
71
+ coats of arms carry protection INDEPENDENT of copyright, and Commons notes
72
+ for Puerto Rico that "Flags and coats of arms seem to follow the same laws
73
+ as the US", citing Ley Núm. 70 de 2006 — which was NOT fetched in this pass.
74
+ Render `emblem: {present: true, rendered: placeholder}`.
75
+ photograph_caution: >-
76
+ Plate photographs on plateshack.com and worldlicenseplates.com carry no
77
+ licence statement at all and are treated as all-rights-reserved; none was
78
+ copied. Because our renders are generated from the statute, no photographic
79
+ obligation attaches.
80
+ sources:
81
+ - "https://commons.wikimedia.org/wiki/Template:PD-PRGov # the Puerto Rico PD tag exists and is in active use; its cited basis is the USCO Compendium (Third) ch. 300"
82
+ - "https://commons.wikimedia.org/wiki/Commons:Copyright_rules_by_territory/United_States # the summary row listing Puerto Rico with CA/FL/GA/MA as public domain; AND the countervailing 'Organized Territories has less clear status' caveat quoted above; AND the flags/coats-of-arms note citing Ley Núm. 70 de 2006"
83
+ - "https://copyright.gov/comp3/chap300/ch300-copyrightable-authorship.pdf # USCO Compendium (Third) ch. 300 — the authority {{PD-PRGov}} itself points to"
84
+ - "https://bvirtual.ogp.pr.gov/ogp/Bvirtual/leyesreferencia/PDF/2/0022-2000.pdf # Ley 22-2000 itself — an edict of government, PD at every level"
85
+
86
+ # ---------------------------------------------------------------------------
87
+ # The US standards chain. Recorded per PRD-PLATES §4. NOTHING here quotes SAE
88
+ # J686, whose text is paywalled and unpinned (the standing rule).
89
+ # ---------------------------------------------------------------------------
90
+ us_standards:
91
+ no_federal_mandate: true
92
+ applies_to_territories: >-
93
+ AAMVA's standard is a voluntary recommendation to its member jurisdictions,
94
+ which include the US territories. NO EVIDENCE WAS FOUND that Puerto Rico has
95
+ adopted it, and Ley 22-2000 does not reference it. The geometry below is
96
+ recorded as the North American convention Puerto Rico is REPORTED to follow,
97
+ not as a Puerto Rico legal requirement.
98
+ aamva_edition_3:
99
+ dimensions_delegated: "AAMVA §3.1 delegates dimensions and bolt holes to SAE J686, whose own text is PAYWALLED and was NOT obtained. No J686 dimension is quoted anywhere in this file."
100
+ 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"
101
+ 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"
102
+ replacement_cycle: "AAMVA §1.1 recommends a rolling or full replacement cycle not to exceed 7 to 10 years. Ley 22-2000 legislates NO replacement cycle at all — Puerto Rico plates renew annually (Art. 2.11) but the PLATE itself is not on a statutory replacement clock. Recorded as a real difference from Florida, which legislated 10 years."
103
+ source: "https://www.aamva.org/getmedia/646bcc8a-219b-47d8-b5cd-726240473163/License-Plate-Standard-Edition-3_September-2025-Update.pdf"
104
+
105
+ # ---------------------------------------------------------------------------
106
+ # Display rules. PUERTO RICO IS STATUTORILY REAR-ONLY — INCLUDING MOTORCYCLES —
107
+ # and this is the single most valuable fact in the file, because the widely
108
+ # repeated "rear plate only since 1976" claim is an enthusiast/encyclopedia
109
+ # claim with no instrument behind it. Art. 2.18 states the rule in law.
110
+ # ---------------------------------------------------------------------------
111
+ display_rules:
112
+ default: >-
113
+ ONE plate, REAR. Art. 2.18, second paragraph: "Las tablillas serán fijadas
114
+ horizontalmente y en forma visible en la PARTE POSTERIOR de todo vehículo de
115
+ motor o arrastre, INCLUYENDO MOTOCICLETAS". Note the two things the sentence
116
+ does that matter: it fixes the position (rear) and the orientation
117
+ (horizontal), and it sweeps motorcycles into the same rule rather than
118
+ carving them out — which is unusual, and means a PR motorcycle plate is not
119
+ display-distinct from a car plate.
120
+ illumination: >-
121
+ Art. 2.18: the plate "deberá quedar alumbrada de noche por una luz incolora
122
+ colocada para ese fin en el vehículo que permita distinguir su número de
123
+ permiso, aun cuando el vehículo se encuentre en movimiento" — a COLOURLESS
124
+ lamp, and legibility required while the vehicle is IN MOTION.
125
+ plate_count: >-
126
+ NOT FIXED BY STATUTE. Art. 2.18 delegates "la cantidad de tablillas que
127
+ utilizarán los diferentes vehículos" to the Secretary by reglamento. The
128
+ single-rear-plate practice is universally reported but its instrument is the
129
+ unobtained reglamento, not the law (recorded gap).
130
+ validation: >-
131
+ Puerto Rico validates on a WINDSHIELD STICKER (the "marbete"), not on a
132
+ plate decal — corroborated by dated photographs of PR windshield
133
+ registration stickers for 2022, 2023 and 2024 expirations. Art. 2.11 sets a
134
+ STAGGERED annual renewal keyed to the month of first registration, and
135
+ excludes Commonwealth and municipal vehicles from the staggered system.
136
+ ownership: >-
137
+ Art. 2.13: every permiso and tablilla the Secretary issues "se considerará
138
+ PROPIEDAD DEL DEPARTAMENTO", and must be returned within thirty (30) days
139
+ when the vehicle goes to permanent private-property use, is abandoned as
140
+ unserviceable, or is scrapped. The plate is state property, not the owner's.
141
+ sources:
142
+ - "https://bvirtual.ogp.pr.gov/ogp/Bvirtual/leyesreferencia/PDF/2/0022-2000.pdf # Art. 2.18: rear-only including motorcycles, horizontal fixing, colourless illumination, and the delegation of design/size/colour/plate-count to reglamento; Art. 2.11: staggered annual renewal keyed to first-registration month, government/municipal exclusion, 30-day extension power; Art. 2.13: plates are Department property, 30-day return duty"
143
+ - "http://www.plateshack.com/y2k/Puerto_Rico/pry2k.html # CORROBORATION ONLY (PRD-PLATES §4): dated photographs of PR WINDSHIELD registration stickers (Jan 2022, Jan 2023, Feb 2023, Jan 2024 expirations), which is how the marbete practice was confirmed against the statute's silence"
144
+
145
+ series:
146
+
147
+ # =========================================================================
148
+ # THE STANDARD-ISSUE SERIES.
149
+ # =========================================================================
150
+ - id: us-pr-standard
151
+ class: standard
152
+ categories: [car, van, truck, bus, motorcycle, trailer]
153
+ period: { start: 2000 }
154
+ period_evidence: statutory-enactment-date-upper-bound
155
+ matching: strict
156
+ format:
157
+ pattern: "LLL 999"
158
+ regex: '\A[A-Z]{3} ?\d{3}\z'
159
+ regex_statutory: '\A[A-Z0-9](?: ?[A-Z0-9])*\z'
160
+ charset:
161
+ notes: >-
162
+ Art. 1.94 is the whole statutory constraint on the serial, and it is
163
+ remarkably thin: "Tablillas" significará la identificación individual
164
+ que como parte del permiso de un vehículo le expida el Secretario, "la
165
+ cual podrá contener NÚMEROS O LETRAS O COMBINACIÓN DE AMBOS". An
166
+ alphabet, and nothing else. NOTE WHAT IS ABSENT: Puerto Rico law fixes
167
+ NO MAXIMUM LENGTH. That is a genuine difference from Florida, whose
168
+ § 320.06(3)(a) caps the serial at seven characters, and it is why
169
+ `regex_statutory` here is unbounded rather than {0,6}. An unbounded
170
+ quantifier makes no width claim, which is the honest encoding of a
171
+ statute that makes none.
172
+ pattern_note: >-
173
+ `regex` encodes the CURRENT passenger arrangement — three letters, a
174
+ gap, three numerals. That arrangement is NOT in the statute; it is
175
+ reported by a Wikipedia locator and corroborated by dated plate
176
+ photographs, and it is recorded as `matching: strict` because it lies
177
+ INSIDE the statutory alphabet, never outside it (PRD-PLATES §2.7:
178
+ narrower is still strict). `regex_statutory` is the outer legal bound
179
+ from Art. 1.94 and is the honest matcher for a Puerto Rico plate of
180
+ unknown vintage.
181
+ progression: "sequential within the three-letter block; the specific block boundaries reported by locators (e.g. HEO/JVJ/KBV ranges) are NOT asserted here — see notes"
182
+ design:
183
+ plate: { w: 12, h: 6, unit: in, w_mm: 304.8, h_mm: 152.4 }
184
+ plate_dimension_note: >-
185
+ THE DIMENSION IS NOT IN PUERTO RICO LAW. Art. 2.18 delegates "tamaño" to
186
+ the Secretary's reglamento, which was not obtained. 12 x 6 in is the
187
+ North American convention Puerto Rico is reported to follow and is
188
+ recorded as REPORTED, not sourced. Note also that Puerto Rico offers an
189
+ optional NARROWER plate (see `us-pr-euro-optional`), which is direct
190
+ evidence that PR's size is a departmental choice rather than a fixed
191
+ legal fact.
192
+ background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed-secondary }
193
+ foreground: "#000000"
194
+ colour_note: >-
195
+ NEITHER COLOUR IS IN THE STATUTE — Art. 2.18 delegates "colores" to
196
+ reglamento in terms. The reflective-white ground with screened black
197
+ characters is `hex_basis: observed-secondary`, taken from a Wikipedia
198
+ locator description and corroborated by dated plate photographs. Treat
199
+ both hexes as unverified pending the DTOP reglamento.
200
+ legend_top: "PUERTO RICO"
201
+ legend_bottom_reported: "Isla del Encanto"
202
+ graphic: { present: true, rendered: placeholder, description: "fort / garita motif reported on the current base — locator-grade, NOT from any statutory drawing" }
203
+ emblem: { present: true, rendered: placeholder }
204
+ band: { side: none }
205
+ rear_differs: false
206
+ previous_base_reported:
207
+ note: >-
208
+ DELIBERATELY NOT MINTED AS A SERIES, per PRD-PLATES §4's rule that
209
+ Wikipedia is a LOCATOR and its era tables are not sourced years. The
210
+ locator reports a March 2023 changeover to the fort / "Isla del Encanto"
211
+ base from a 2007-2023 base, both in ABC 123. NO PRIMARY establishing
212
+ either boundary was obtained: DTOP publishes no plate-design instrument
213
+ that was reachable in this pass, and Ley 22-2000 is design-silent by
214
+ construction. Rather than mint a dated id on a folklore boundary and then
215
+ have to alias it (PRD-QUALITY I-5/I-6), the boundary is recorded here and
216
+ a dated series is added when a reglamento or DTOP order lands.
217
+ reported_boundaries: ["1987-2007 ABC 123", "2007-2023 ABC 123", "2023-present ABC 123, fort graphic"]
218
+ evidence: locator-only
219
+ region_encoding: none
220
+ sources:
221
+ - "https://bvirtual.ogp.pr.gov/ogp/Bvirtual/leyesreferencia/PDF/2/0022-2000.pdf # Art. 1.94: the serial alphabet ('números o letras o combinación de ambos') and the ABSENCE of any length cap; Art. 2.05: the register keys each vehicle by VIN plus 'aquel otro número que entienda apropiado el Secretario' and records the 'Identificación o tablilla concedida al vehículo'; Art. 2.17: the Secretary issues plates on registration, renewal, change of authorised use, and transfer where the acquirer holds no plate, and sets design/characteristics/issuance/renewal/use by reglamento against a $10 fee to the DISCO special account; Art. 2.18: content, delegation of design/size/colours, rear-only horizontal display including motorcycles, colourless illumination"
222
+ - "https://www.dtop.pr.gov/ # the issuing authority; DISCO/CESCO is the plate-issuing directorate named throughout Ley 22-2000"
223
+ - "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Puerto_Rico # LOCATOR ONLY (PRD-PLATES §4): the ABC 123 arrangement, the reported March 2023 fort base, the reported serial blocks, and the 'rear plate only since 1976' claim. NONE of these is asserted as sourced here; the rear-only rule is instead cited to Art. 2.18, which states it in law and needs no folklore"
224
+ - "https://www.aamva.org/getmedia/646bcc8a-219b-47d8-b5cd-726240473163/License-Plate-Standard-Edition-3_September-2025-Update.pdf # AAMVA Ed.3 geometry, recorded as voluntary recommendation with no evidence of PR adoption"
225
+ notes: >-
226
+ PUERTO RICO STANDARD ISSUE. THE ID IS DELIBERATELY UNDATED, for the same
227
+ reason us-fl-standard is: the statute is design-silent and no primary fixes
228
+ the base-design generations. PERIOD CAVEAT: `start: 2000` is the enactment
229
+ year of Ley 22-2000 and is an UPPER BOUND on the true start of the ABC 123
230
+ arrangement, which locators put at 1987. It is recorded as the instrument
231
+ date rather than invented, and the 1987 figure is left in the locator where
232
+ it belongs. THE BIG WIN IN THIS ENTRY is Art. 2.18: the famous "rear plate
233
+ only since 1976" line that every secondary source repeats is, in the
234
+ current law, a plain statutory rule that also sweeps in motorcycles — so
235
+ the dataset can assert rear-only for Puerto Rico from an edict of
236
+ government rather than from folklore.
237
+
238
+ - id: us-pr-euro-optional
239
+ class: standard
240
+ categories: [car, van]
241
+ period: { start: 2012 }
242
+ period_evidence: locator-reported
243
+ matching: strict
244
+ format:
245
+ pattern: "LLL 999"
246
+ regex: '\A[A-Z]{3} ?\d{3}\z'
247
+ regex_statutory: '\A[A-Z0-9](?: ?[A-Z0-9])*\z'
248
+ charset: { notes: "the serial is the ordinary Art. 1.94 serial on a differently-sized plate; no separate alphabet" }
249
+ design:
250
+ plate: { note: "LONGER AND NARROWER than the standard North American plate — the European proportion. No millimetre figure is sourced; DTOP's reglamento fixes size under Art. 2.18 and was not obtained." }
251
+ background: { finish: retroreflective }
252
+ shape: rectangular
253
+ emblem: { present: true, rendered: placeholder }
254
+ region_encoding: none
255
+ sources:
256
+ - "https://bvirtual.ogp.pr.gov/ogp/Bvirtual/leyesreferencia/PDF/2/0022-2000.pdf # Art. 2.18 delegates 'tamaño' to the Secretary by reglamento — the legal room in which an alternative plate size can exist at all"
257
+ - "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Puerto_Rico # LOCATOR: optional European-size plates purchasable since 2012, offered during discrete windows (2012-2013, 2020-2021, 2022-2023)"
258
+ - "http://www.plateshack.com/y2k/Puerto_Rico/pry2k.html # CORROBORATION: a photographed 'Puerto Rico Euro style plate seen in use March of 2022' — an independent attestation that the option is real and in circulation, which is why this is modelled at all"
259
+ notes: >-
260
+ THE OPTIONAL EUROPEAN-SIZE PLATE — kept as its own series because §2.3's
261
+ test is met on DESIGN (the plate geometry differs) while format and period
262
+ overlap the standard series, and because the US/world research dossier
263
+ singled this out as one of two North American cases that break the
264
+ "fixed-width alphanumeric on a 6x12 rectangle" assumption (Delaware's
265
+ variable-length numeric is the other). EVIDENCE GRADE IS LOW AND SAID SO:
266
+ `period_evidence: locator-reported`. The 2012 start and the on/off offer
267
+ windows come from a Wikipedia locator; the only independent confirmation is
268
+ a dated photograph. It is modelled rather than dropped because a parse API
269
+ that assumes one PR plate geometry will mis-render, and a flagged fact beats
270
+ a silent omission.
271
+
272
+ # =========================================================================
273
+ # CORE DISTINCT CLASSES. Puerto Rico serialises these separately in statute;
274
+ # NONE of their formats is fixed in law, because Art. 2.18 sends every
275
+ # physical property to a reglamento that was not obtained. Each therefore
276
+ # carries `matching: recall-only` and the statutory alphabet as its regex —
277
+ # which is the honest encoding of "we know this series exists and who issues
278
+ # it, and we do not know its grammar".
279
+ # =========================================================================
280
+ - id: us-pr-temporary
281
+ class: temporary
282
+ categories: [car, van, truck, bus, motorcycle, trailer]
283
+ period: { start: 2000 }
284
+ period_evidence: statutory-enactment-date
285
+ matching: recall-only
286
+ format:
287
+ pattern: "LLL 999"
288
+ regex: '\A[A-Z0-9](?: ?[A-Z0-9])*\z'
289
+ charset: { notes: "Art. 1.94's alphabet, unchanged. Art. 2.12 sends 'la expedición, características, duración y uso de los permisos provisionales y tablillas correspondientes' to a reglamento adopted with the Secretary of the Treasury, which was not obtained." }
290
+ pattern_note: >-
291
+ THE PATTERN IS ILLUSTRATIVE AND THE REGEX IS DELIBERATELY WIDE. The
292
+ pattern shows the printed shape of the base plate this series sits on;
293
+ the regex is the Art. 1.94 statutory bound. `matching: recall-only` is
294
+ the whole point — a match here is a shape hit, never a claim that the
295
+ string is a valid PR provisional plate.
296
+ design:
297
+ plate: { note: "not fixed by statute; Art. 2.12 delegates 'características' to reglamento" }
298
+ emblem: { present: false }
299
+ validity: >-
300
+ Art. 2.12: the provisional permit is valid for a term NOT EXCEEDING THIRTY
301
+ (30) DAYS from the date the vehicle was sold, must be carried in the vehicle
302
+ continuously, and the seller must mark the sale date in the space provided
303
+ and register the vehicle with the Department within those thirty days. After
304
+ the term expires the vehicle may not use public roads until registered.
305
+ eligibility: >-
306
+ Art. 2.12: provisional permits go ONLY to new or used motor vehicles or
307
+ trailers imported or destined for sale that have NOT PREVIOUSLY BEEN
308
+ REGISTERED IN PUERTO RICO, sold by persons in the business of selling
309
+ vehicles. A separate route exists for vehicles bought by a Public Service
310
+ Commission concessionaire for public service, where the Commission's
311
+ substitution authorisation itself serves as the provisional permit until the
312
+ Department finalises the substitution.
313
+ region_encoding: none
314
+ sources:
315
+ - "https://bvirtual.ogp.pr.gov/ogp/Bvirtual/leyesreferencia/PDF/2/0022-2000.pdf # Art. 2.12: the 30-day provisional permit and its accompanying tablillas, the sale-date marking duty, the importer/dealer-only eligibility, the Public Service Commission route, and the delegation of characteristics/duration/use to a reglamento adopted jointly with the Secretary of the Treasury"
316
+ notes: >-
317
+ PROVISIONAL PLATES. The statute is unusually precise about VALIDITY (thirty
318
+ days, running from the sale date, not from issuance) and unusually silent
319
+ about everything a renderer needs. That asymmetry — hard legal periods,
320
+ delegated physical properties — is the defining texture of Puerto Rico's
321
+ plate law and the reason this file carries so many recall-only series.
322
+
323
+ - id: us-pr-dealer
324
+ class: dealer
325
+ categories: [car, van, truck, bus, motorcycle, trailer]
326
+ period: { start: 2000 }
327
+ period_evidence: statutory-enactment-date
328
+ matching: recall-only
329
+ format:
330
+ pattern: "LLL 999"
331
+ regex: '\A[A-Z0-9](?: ?[A-Z0-9])*\z'
332
+ charset: { notes: "Art. 1.94's alphabet; no dealer-specific grammar is stated anywhere in Ley 22-2000" }
333
+ pattern_note: "illustrative pattern, statutory-bound regex — see us-pr-temporary's note; the same discipline applies"
334
+ design:
335
+ plate: { note: "not fixed by statute" }
336
+ emblem: { present: false }
337
+ binding: business
338
+ eligibility: >-
339
+ Art. 2.14: anyone selling motor vehicles or trailers at retail for profit
340
+ must obtain a "Licencia de Concesionario de Vehículos de Motor y
341
+ Arrastres". Art. 2.15 creates a SECOND, narrower licence — the
342
+ "concesionario especial" — for those who buy, rescue, salvage, repair,
343
+ rebuild and sell WRECKED vehicles in limited quantities, with the maximum
344
+ number of vehicles set by reglamento.
345
+ quota: >-
346
+ Art. 2.14(E): "El Secretario o su representante autorizado determinará la
347
+ CANTIDAD DE TABLILLAS ESPECIALES que asignará a todo concesionario" — the
348
+ dealer's plate allocation is discretionary and per-dealer, and the dealer
349
+ must keep an inspectable register of which vehicles carried which special
350
+ plate and over what dates.
351
+ penalty: "Art. 2.14(F): violation is a misdemeanour — up to six months' imprisonment, a fine up to $5,000, or both, at the court's discretion"
352
+ region_encoding: none
353
+ sources:
354
+ - "https://bvirtual.ogp.pr.gov/ogp/Bvirtual/leyesreferencia/PDF/2/0022-2000.pdf # Art. 2.14(A) the dealer licence and its exclusion of Art. 2.15 special concessionaires; Art. 2.14(E) the per-dealer special-plate quota and the inspectable use register; Art. 2.14(F) the penalty; Art. 2.15 the special (salvage/rebuild) concessionaire licence"
355
+ notes: >-
356
+ DEALER PLATES. `binding: business` for the same reason as Germany's rote
357
+ Kennzeichen and Florida's dealer plate — the plate follows the licensed
358
+ concessionaire, not a vehicle. The genuinely distinctive Puerto Rico fact is
359
+ that the ALLOCATION IS DISCRETIONARY AND LOGGED: Art. 2.14(E) makes the
360
+ number of dealer plates a per-dealer administrative decision and requires a
361
+ vehicle-by-vehicle, date-stamped use register open to Department and Police
362
+ inspection. Most US states issue dealer plates against a fee schedule; Puerto
363
+ Rico issues them against a judgement about "el desempeño adecuado y
364
+ responsable" of the dealer.
365
+
366
+ - id: us-pr-antique
367
+ class: historic
368
+ categories: [car]
369
+ period: { start: 2000 }
370
+ period_evidence: statutory-enactment-date
371
+ matching: recall-only
372
+ format:
373
+ pattern: "LLL 999"
374
+ regex: '\A[A-Z0-9](?: ?[A-Z0-9])*\z'
375
+ charset: { notes: "Art. 2.26 states no serial grammar; design/characteristics go to reglamento" }
376
+ pattern_note: "illustrative pattern, statutory-bound regex — see us-pr-temporary's note"
377
+ design:
378
+ plate: { note: "not fixed by statute; Art. 2.26 delegates diseño y características to reglamento" }
379
+ emblem: { present: true, rendered: placeholder }
380
+ eligibility: >-
381
+ Art. 2.26: a special plate is issued on application to any motor vehicle
382
+ classifiable as an "automóvil antiguo", meaning any car "que haya sido
383
+ construido por lo menos CUARENTA (40) AÑOS ANTES DE LA FECHA DE EXPEDICIÓN
384
+ DE LA TABLILLA" — a ROLLING forty-year threshold measured against the
385
+ ISSUE DATE OF THE PLATE, not against the calendar year.
386
+ fee: "Art. 2.26: no fee beyond that fixed by law for private-use plates"
387
+ region_encoding: none
388
+ sources:
389
+ - "https://bvirtual.ogp.pr.gov/ogp/Bvirtual/leyesreferencia/PDF/2/0022-2000.pdf # Art. 2.26: the rolling 40-year threshold measured from the plate's issue date, the no-extra-fee rule, and the delegation of design/characteristics/issuance/renewal/cancellation to reglamento"
390
+ - "http://www.plateshack.com/y2k/Puerto_Rico/pry2k.html # CORROBORATION ONLY: photographs captioned 'Puerto Rico antique vehicle type plates (Current type on right)' — independent evidence that at least two antique designs have been in issue, which the statute does not record"
391
+ notes: >-
392
+ ANTIQUE PLATES. Puerto Rico sets a ROLLING threshold (40 years), the same
393
+ design choice as Florida's Antique series (30 years) and the opposite of
394
+ Florida's Horseless Carriage (fixed model year 1945). But PR does something
395
+ neither Florida series does: it measures the age against THE DATE THE PLATE
396
+ IS ISSUED rather than against the current year, which makes eligibility a
397
+ property of the transaction rather than of the calendar — a distinction that
398
+ matters to any consumer computing eligibility, and one that only appears if
399
+ you read the statute rather than a brochure.
400
+
401
+ - id: us-pr-personalized
402
+ class: personalized
403
+ categories: [car, van, truck, motorcycle]
404
+ period: { start: 2000 }
405
+ period_evidence: statutory-enactment-date
406
+ matching: strict
407
+ format:
408
+ pattern: "LLLLLL"
409
+ regex: '\A[A-Z0-9]+\z'
410
+ charset:
411
+ notes: >-
412
+ Art. 2.32(a): each personalised plate carries "aquellas PALABRAS,
413
+ NÚMEROS O LETRAS que expresamente interese e indique la parte que la
414
+ solicita". NO LENGTH CAP IS STATED — hence the unbounded quantifier,
415
+ which makes no width claim. This is a real divergence from Florida,
416
+ whose § 320.06(3)(a) caps every plate at seven characters and therefore
417
+ caps its vanity plates too.
418
+ content_refusal: >-
419
+ Art. 2.32(a), and this is the part Florida's chapter does NOT have: the
420
+ Secretary "podrá, a su discreción, prohibir o restringir el uso de ciertas
421
+ palabras, dígitos, números, letras o combinaciones y cantidades de las
422
+ mismas, si entiende que éstas podrían provocar confusión, utilizarse para
423
+ propósitos ilícitos o de alguna manera afectar adversamente el bienestar
424
+ general o la sana convivencia". Puerto Rico legislates its vanity-plate
425
+ refusal criteria; Florida does not, and the Florida file records that as a
426
+ gap. Here it is a sourced fact.
427
+ design:
428
+ plate: { note: "not fixed by statute; Art. 2.32(c) delegates diseño, tamaño, colores y ubicación to reglamento" }
429
+ note: "Art. 2.32(c) requires the Secretary to arrange matters so that the personalised plate IS AT THE SAME TIME the official plate ('de tal forma que ésta sea a la vez la tablilla oficial') — it replaces rather than supplements"
430
+ emblem: { present: true, rendered: placeholder }
431
+ fee: "Art. 2.33: amounts for issuance and duplicates are set by reglamento; ALL revenue is deposited in a Special Fund dedicated to improving DISCO's services, facilities and mechanisation systems"
432
+ penalty: "Art. 2.32(f): displaying a personalised plate without authorisation is a misdemeanour, fine of $200-$500"
433
+ region_encoding: none
434
+ sources:
435
+ - "https://bvirtual.ogp.pr.gov/ogp/Bvirtual/leyesreferencia/PDF/2/0022-2000.pdf # Art. 2.32(a) owner-chosen words/numbers/letters and the Secretary's statutory content-refusal discretion; (b) the index and control records; (c) the personalised plate IS the official plate, and the delegation of design/size/colours/location; (d) validity tied to the official plate's term; (f) the $200-$500 penalty; Art. 2.33 the fee-setting delegation and the DISCO Special Fund"
436
+ notes: >-
437
+ PERSONALISED PLATES. Modelled as its own series because the SERIAL SOURCE
438
+ differs — owner-chosen rather than department-assigned — which is a format
439
+ property, exactly as in Florida. TWO FINDINGS WORTH CARRYING FORWARD. First,
440
+ Puerto Rico legislates the CONTENT-REFUSAL CRITERIA that Florida leaves
441
+ unwritten, so where us-fl-personalized records a gap this entry records a
442
+ sourced rule. Second, PR states NO LENGTH CAP anywhere, so the regex is
443
+ unbounded; a consumer that assumed the US seven-character convention would be
444
+ imposing Florida's law on Puerto Rico.
445
+
446
+ # =========================================================================
447
+ # SPECIALTY — THE PROGRAM INDEX, per PRD-PLATES §2.5. Puerto Rico is the rare
448
+ # jurisdiction where the specialty catalogue is ITSELF STATUTORY: seven
449
+ # programmes, each with its own article. Count and citations only; no designs.
450
+ # =========================================================================
451
+ - id: us-pr-specialty-index
452
+ class: specialty
453
+ categories: [car, van, truck, motorcycle]
454
+ period: { start: 2000 }
455
+ period_evidence: statutory-enactment-date
456
+ matching: recall-only
457
+ format:
458
+ pattern: "LLL 999"
459
+ regex: '\A[A-Z0-9](?: ?[A-Z0-9])*\z'
460
+ charset: { notes: "specialty plates carry ordinary Art. 1.94 serials; several are DISTINTIVOS carried IN ADDITION to the official plate rather than in place of it — see the index" }
461
+ pattern_note: "illustrative pattern, statutory-bound regex — this is an INDEX entry, not a spec"
462
+ design:
463
+ plate: { note: "one design per statutory programme; the designs themselves are L4 scope (PRD-PLATES §2.5) and none is described here" }
464
+ emblem: { present: true, rendered: placeholder }
465
+ program_index:
466
+ count_statutory: 7
467
+ count_basis: >-
468
+ SEVEN PROGRAMMES ARE CREATED BY LEY 22-2000 ITSELF, one article each.
469
+ This is a count from an edict of government, not from a brochure or a
470
+ press office — which makes Puerto Rico's specialty index better-sourced
471
+ than most US states', where the count comes from an agency web page.
472
+ statutory_programs:
473
+ - "Art. 2.20 — ACTIVE GENERAL PRESS ('miembros de la prensa general activa'), accredited by the Department of State; also for news-agency vehicles assigned to an accredited member, which must be liveried; no extra fee beyond the private-use plate fee; $20 internal-revenue stamp to the DISCO fund; surrender on loss of accreditation; $200-$500 fine for unauthorised display"
474
+ - "Art. 2.26 — ANTIQUE AUTOMOBILES (specced separately as us-pr-antique because its eligibility rule is substantive)"
475
+ - "Art. 2.27 — CAREER AND HONORARY CONSULS: plates or distintivos issued IN ADDITION to the vehicle's official plate, usable only for the official plate's term, only on the consul's vehicle, non-transferable to consulate staff"
476
+ - "Art. 2.28 — RADIO AMATEURS: the plate 'llevará la codificación especial asignada' by the Federal Communications Commission, is fixed to the REAR, replaces the official plate, and the amateur must obtain FCC authorisation for a replacement if it is lost or stolen; internal-revenue stamp to the DISCO Special Fund"
477
+ - "Art. 2.29 — LEGISLATORS: issued on certification by the Senate or House, carried IN ADDITION to the official plates, internal-revenue stamp payable"
478
+ - "Art. 2.30 — MAYORS AND MUNICIPAL ASSEMBLY MEMBERS: issued on certification by the Comisión Estatal de Elecciones and after taking office, carried in addition to the official plates"
479
+ - "Art. 2.31 — FORMER PRISONER-OF-WAR VETERANS: uniquely, the special plate may be displayed at the REAR, in which case THE OFFICIAL PLATE MOVES TO THE FRONT — the only place in Ley 22-2000 where a Puerto Rico vehicle lawfully carries a front plate"
480
+ also_statutory_but_not_plates: "Art. 2.21-2.24 create REMOVABLE PLACARDS ('rótulos removibles') for disabled parking — deliberately excluded from this index because a placard is not a registration mark"
481
+ count_secondary: >-
482
+ DATED PHOTOGRAPHS ATTEST AT LEAST FOUR FURTHER PROGRAMMES not named in
483
+ the statute — Roberto Clemente and Roberto Clemente Anniversary,
484
+ Make-A-Wish Foundation, San Juan 500th Anniversary, Olympic Committee, and
485
+ a Veteran plate first issued around 2009. The statute-versus-practice
486
+ discrepancy is RECORDED, NOT AVERAGED (PRD-PLATES §5.3): either these rest
487
+ on later amendments to Ley 22-2000 that the served scan predates, or on
488
+ separate special acts, or on the Secretary's reglamento power. Resolving
489
+ which is a recorded gap and the highest-value next step for Puerto Rico.
490
+ official_list_url: "https://www.cesco.pr.gov/"
491
+ official_list_note: "CESCO is DTOP's driver-services portal and the natural home for an official specialty catalogue; NO machine-readable or enumerated specialty list was located on it in this pass (recorded gap)"
492
+ region_encoding: none
493
+ sources:
494
+ - "https://bvirtual.ogp.pr.gov/ogp/Bvirtual/leyesreferencia/PDF/2/0022-2000.pdf # Arts. 2.20, 2.26, 2.27, 2.28, 2.29, 2.30, 2.31 — the seven statutory specialty programmes, their eligibility, fees, display rules and penalties; Art. 2.31(a) the front-plate inversion; Arts. 2.21-2.24 the disabled placards excluded from this index"
495
+ - "https://www.cesco.pr.gov/ # DTOP/CESCO driver-services portal — the official channel; no enumerated specialty catalogue found (gap)"
496
+ - "http://www.plateshack.com/y2k/Puerto_Rico/pry2k.html # CORROBORATION + GAP-FINDER (PRD-PLATES §4): dated photographs of Roberto Clemente, Roberto Clemente Anniversary, Make-A-Wish, San Juan 500th Anniversary, Olympic Committee and Veteran plates, plus a trailer plate and a private-truck plate. This is how the statute-versus-practice discrepancy above was FOUND; no text or image was copied"
497
+ notes: >-
498
+ THE SPECIALTY PROGRAM INDEX — one entry standing for the whole programme,
499
+ which is what PRD-PLATES §2.5 asks for at this gate. Two things worth
500
+ carrying forward. First, PUERTO RICO'S SPECIALTY CATALOGUE IS AN EDICT: seven
501
+ programmes, seven articles, all public domain and all citable per claim —
502
+ a materially better provenance than the agency-webpage counts most US states
503
+ offer, and worth saying so on the encyclopedia page. Second, THE COUNT IS
504
+ CONTESTED IN THE MOST INFORMATIVE WAY POSSIBLE: photographs prove programmes
505
+ the served statute does not create, which means the served scan is either
506
+ not current or not exhaustive. That is a finding about the SOURCE, not just
507
+ about the data, and it is recorded rather than smoothed over.