vehicles 0.4.0 → 0.6.1

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.
@@ -0,0 +1,692 @@
1
+ # plates/es.yml — Spain (PRD-PLATES gate L0 pilot).
2
+ #
3
+ # EVERY format, colour and letter-exclusion claim in this file comes from
4
+ # Real Decreto 2822/1998 (Reglamento General de Vehículos) ANEXO XVIII, read
5
+ # in BOTH texts, because they differ and the difference IS the era boundary:
6
+ #
7
+ # * ORIGINAL text, BOE-A-1999-1826, in force 26-07-1999 — its Anexo XVIII
8
+ # I.A.a) still describes the PROVINCIAL ordinary-car system
9
+ # (province contraseña + 4 digits + 1-2 letters), while I.A.b)-d) and all
10
+ # of I.B/I.C already use the modern "prefix letter + 4 digits + 3 letters"
11
+ # shape. RD 2822/1998's own preamble states the novelty: "la supresión de
12
+ # las siglas de la provincia en todas las placas de matrícula, a excepción
13
+ # de las ordinarias de los vehículos automóviles".
14
+ # * ORDEN de 15 de septiembre de 2000, BOE-A-2000-16805, IN FORCE
15
+ # 17-09-2000 — replaces I.A.a) wholesale with the 4-digits + 3-letters
16
+ # national series AND adds the blue EU band (Cuadro 5). Its stated reason:
17
+ # "El sistema actual de numeración ... está próximo a agotarse en las
18
+ # provincias de Madrid y Barcelona".
19
+ # * CONSOLIDATED text (BOE-A-1999-1826-consolidado) — current wording,
20
+ # including the modern additions (decorative geometric designs permitted;
21
+ # ISO/IEC 30116:2016 OCR quality).
22
+ #
23
+ # This settles the "Spanish 2000 cutover" that PRD-PLATES §5.3 flags as a
24
+ # folklore-prone boundary: the instrument is dated, published and its entry
25
+ # into force is stated by BOE itself as 17-09-2000. No averaging required.
26
+ #
27
+ # COLOUR POLICY: Anexo XVIII Cuadro 3 specifies, per colour, a FOUR-CORNER
28
+ # CIE chromaticity box plus a MINIMUM luminance factor. That constrains a
29
+ # GAMUT, not a value — so no single hex is a sourced claim. Each design below
30
+ # therefore carries `hex_basis: observed` for the rendered hex, plus
31
+ # `color_spec` with the cited Cuadro 3 box, plus `hex_cie_centroid` (the box
32
+ # centroid converted to sRGB at maximum in-gamut luminance) so the render
33
+ # layer can choose a spec-anchored value instead of the conventional one.
34
+ jurisdiction: es
35
+ authority:
36
+ name: Dirección General de Tráfico (DGT) — Reglamento General de Vehículos, RD 2822/1998, Anexo XVIII
37
+ url: "https://www.boe.es/buscar/act.php?id=BOE-A-1999-1826"
38
+ binding: vehicle
39
+
40
+ charset_defaults:
41
+ letters: [B, C, D, F, G, H, J, K, L, M, N, P, R, S, T, V, W, X, Y, Z]
42
+ excluded_letters: [A, E, I, O, U, "Ñ", Q]
43
+ excluded_digraphs: [CH, LL]
44
+ excluded_letters_note: >-
45
+ Anexo XVIII, verbatim: "tres letras, empezando por las letras BBB y
46
+ terminando por las letras ZZZ, suprimiéndose las cinco vocales, y las letras
47
+ Ñ y Q" — with the reasons given in the text itself: the vowels "se evitan
48
+ palabras malsonantes o acrósticos especialmente significados"; Ñ and Q "por
49
+ ser fácil su confusión con la letra N y el número 0, respectivamente"; and
50
+ CH and LL "por incompatibilidad con el diseño de la placa de matrícula que no
51
+ admitiría la consignación de cuatro caracteres en el último grupo". That
52
+ leaves exactly 20 letters. Note the sequence starts at BBB, NOT AAA.
53
+ source: "https://www.boe.es/buscar/pdf/1999/BOE-A-1999-1826-consolidado.pdf # Anexo XVIII I.A: the BBB->ZZZ rule and every exclusion, verbatim"
54
+
55
+ color_spec_table: # cited once; referenced by each design below
56
+ source: "https://www.boe.es/buscar/pdf/1999/BOE-A-1999-1826-consolidado.pdf # Anexo XVIII Cuadro 3, 'Coordenadas cromáticas' + luminance factors"
57
+ blanco: { cie_x: [0.355, 0.305, 0.285, 0.335], cie_y: [0.355, 0.305, 0.325, 0.375], luminance_factor_min: 0.35 }
58
+ rojo: { cie_x: [0.690, 0.595, 0.569, 0.655], cie_y: [0.310, 0.315, 0.341, 0.345], luminance_factor_min: 0.05 }
59
+ verde: { cie_x: [0.007, 0.248, 0.177, 0.026], cie_y: [0.703, 0.409, 0.362, 0.399], luminance_factor_min: 0.04 }
60
+ azul: { cie_x: [0.078, 0.150, 0.210, 0.137], cie_y: [0.171, 0.220, 0.160, 0.038], luminance_factor_min: 0.01 }
61
+ amarillo: { cie_x: [0.545, 0.487, 0.427, 0.465], cie_y: [0.454, 0.423, 0.483, 0.534], luminance_factor_min: 0.27 }
62
+
63
+ display_rules: # Anexo XVIII III, verbatim-sourced
64
+ two_plates: "automóviles except motorcycles and three-wheelers: one front (vertical axis on the median longitudinal plane; exceptionally left or right if construction forbids) and one rear"
65
+ one_plate_rear_only: "ciclomotores, motocicletas, vehículos de tres ruedas, cuatriciclos ligeros y pesados — one rear plate only; light and heavy quadricycles MAY additionally carry a front plate of the same characteristics"
66
+ trailers: "remolques/semirremolques over 750 kg carry their own plate at the rear plus, on the right, a second plate bearing the TOWING vehicle's registration; lighter ones carry only a repeat of the towing vehicle's registration"
67
+ source: "https://www.boe.es/buscar/pdf/1999/BOE-A-1999-1826-consolidado.pdf # Anexo XVIII III. Número y ubicación de las placas"
68
+
69
+ series:
70
+
71
+ # =========================================================================
72
+ # THE CURRENT NATIONAL SERIES — 4 digits + 3 letters, EU band.
73
+ # =========================================================================
74
+ - id: es-national-2000
75
+ class: standard
76
+ categories: [car, van, truck, bus, motorcycle]
77
+ period: { start: 2000 } # Orden de 15-09-2000, in force 17-09-2000
78
+ period_evidence: instrument-in-force
79
+ format:
80
+ pattern: "9999 LLL"
81
+ regex: '\A\d{4} [A-Z]{3}\z'
82
+ regex_strict: '\A\d{4} [BCDFGHJKLMNPRSTVWXYZ]{3}\z'
83
+ charset:
84
+ letters: [B, C, D, F, G, H, J, K, L, M, N, P, R, S, T, V, W, X, Y, Z]
85
+ notes: "see charset_defaults; digits run 0000-9999; the letter group runs BBB to ZZZ"
86
+ progression: >-
87
+ Digits cycle 0000-9999 within a fixed letter triple, then the letter triple
88
+ advances one step in the 20-letter alphabet. Nationally sequential and
89
+ MONOTONIC from BBB, which makes the letter triple an approximate-age signal
90
+ and the ONLY decodable dimension of a post-2000 Spanish plate — there is no
91
+ geography whatsoever in this series.
92
+ separator_note: >-
93
+ Anexo XVIII prescribes "dos grupos de caracteres" and gives the inter-group
94
+ spacing in mm (Cuadro 1: 41 mm on the ordinaria larga) but prescribes no
95
+ separator GLYPH. The space in the pattern is the printed gap.
96
+ design:
97
+ plate: { w: 520, h: 110, unit: mm, reflective_surface: { w: 510, h: 100 } }
98
+ plate_variants:
99
+ - { w: 340, h: 220, unit: mm, reflective_surface: { w: 330, h: 210 }, note: "ordinaria alta (two-line)" }
100
+ - { w: 340, h: 110, unit: mm, reflective_surface: { w: 330, h: 100 }, note: "ordinaria larga delantera — the small FRONT plate, for M1 vehicles whose mounting cannot take the long plate, and for three-wheelers and quadricycles" }
101
+ - { w: 220, h: 160, unit: mm, reflective_surface: { w: 210, h: 150 }, note: "motocicletas ordinaria" }
102
+ - { w: 132, h: 96, unit: mm, reflective_surface: { w: 122, h: 86 }, note: "motocicletas corta — trial and enduro two-wheelers only" }
103
+ characters: { w: 45, h: 77, stroke: 10, gap: 14, group_gap: 41, unit: mm, note: "ordinaria larga; the 340x110 front plate uses 30 x 60 with a 6 mm stroke; motorcycle plates 30 x 60 / 6 mm; motocicletas corta 13 x 30 / 3.5 mm" }
104
+ background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed, hex_cie_centroid: "#FFFEF3", spec: blanco }
105
+ foreground: "#000000"
106
+ foreground_note: "caracteres estampados EN RELIEVE, pintados en color negro MATE — the statute specifies embossed characters and a matte finish, which the render layer should record even if it cannot depict it"
107
+ band: { side: left, color: "#003399", content: eu-stars+E, hex_basis: observed, spec: azul }
108
+ band_note: >-
109
+ "sobre una banda azul dispuesta verticalmente, el símbolo de la bandera
110
+ europea, que constará de 12 estrellas de color amarillo, y la sigla
111
+ distintiva de España representada por la letra E de color blanco, de
112
+ acuerdo con el cuadro 5". CUADRO 5 IS TITLED "DIMENSIONES Y COLORES DEL
113
+ DISTINTIVO COMUNITARIO (Dimensiones en mm.)" but renders as a DRAWING in
114
+ the BOE consolidated PDF — the millimetres are not text-extractable.
115
+ Corrects the EU dossier's expectation that ES Anexo XVIII Cuadro 5 supplies
116
+ Euroband geometry as text.
117
+ decoration_allowed: >-
118
+ Consolidated text only: "se permite la inclusión de diseños geométricos sin
119
+ significado reconocible, siempre que no afecten a las condiciones de
120
+ retrorreflexión y legibilidad", subject to ISO/IEC 30116:2016 OCR quality
121
+ testing. A modern addition absent from the 1999 original.
122
+ emblem: { present: false }
123
+ rear_differs: false
124
+ plate_construction: { border: "reborde plano sin cubrir ni pintar, 5 mm wide around the whole contour, embossed 0.8 +/-0.1 mm", corner_radius: { inner: 6, outer: 10, unit: mm }, character_relief: "0.9 mm +0.3/-0.2 above the ground", manipulator_number: "stamped in a 35 x 5 mm rectangle inside the left-hand bead" }
125
+ region_encoding: none
126
+ variants:
127
+ - class: taxi
128
+ design:
129
+ rear_differs: true
130
+ rear: { background: { color: "#003399", finish: retroreflective, hex_basis: observed, spec: azul }, foreground: "#FFFFFF" }
131
+ front: { background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed, spec: blanco }, foreground: "#000000" }
132
+ note: >-
133
+ THE REAR PLATE ONLY is blue with white matte characters, for taxis and for
134
+ hire-with-driver vehicles of up to nine seats. The front plate stays
135
+ white/black. Same serial, same period, so a sub-entry per PRD-PLATES §2.3
136
+ — but note this is a genuine front/rear ASYMMETRY, not a colour-only
137
+ swap, and secondary sources routinely get it wrong by colouring both.
138
+ sources:
139
+ - "https://www.boe.es/buscar/pdf/1999/BOE-A-1999-1826-consolidado.pdf # Anexo XVIII I.A.a) and Cuadro 1 note (7): 'salvo las placas de matrícula TRASERAS de los vehículos destinados al servicio de taxi y de alquiler con conductor de hasta nueve plazas'"
140
+ - class: motorcycle
141
+ design: { plate: { w: 220, h: 160, unit: mm } }
142
+ note: "Motorcycles carry the SAME national serial on a 220 x 160 plate (122 x 86 reflective on the 132 x 96 trial/enduro plate). Size-only variant, hence a sub-entry; recorded with a class so class-keyed queries can still reach it."
143
+ sources:
144
+ - "https://www.boe.es/buscar/pdf/1999/BOE-A-1999-1826-consolidado.pdf # Anexo XVIII Cuadro 1: Motocicletas ordinaria 220x160 / 210x150; Motocicletas corta 132x96"
145
+ sources:
146
+ - "https://www.boe.es/buscar/doc.php?id=BOE-A-2000-16805 # Orden de 15-09-2000: replaces Anexo XVIII I.A.a) with '4 cifras + 3 letras' and adds the EU band; BOE's own Análisis block states 'Fecha de entrada en vigor: 17/09/2000'"
147
+ - "https://www.boe.es/eli/es/o/2000/09/15/(1) # canonical ELI for that Orden"
148
+ - "https://www.boe.es/buscar/pdf/1999/BOE-A-1999-1826-consolidado.pdf # Anexo XVIII I.A.a) current wording: white retroreflective ground, black matte embossed characters, 4 digits 0000-9999 + 3 letters BBB->ZZZ minus vowels/Ñ/Q; Cuadro 1 dimensions; Cuadro 3 colour boxes"
149
+ - "https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:31998R2411 # Reg. 2411/98 Art. 3 — the mutual-recognition rule the Orden's preamble invokes by name"
150
+ notes: >-
151
+ THE CURRENT SPANISH SERIES. Purely sequential and non-geographic: the 2000
152
+ reform deliberately removed the province code. Anexo XVIII adds the
153
+ reciprocal-recognition clause in terms: a Spanish car whose plate shows the EU
154
+ flag and the E sign "no será necesario que lleven en su parte posterior el
155
+ signo distintivo de la nacionalidad española previsto en la señal V-7".
156
+ DIMENSION CORRECTION worth recording: the statute says 520 x 110 mm, not the
157
+ 500 x 110 that circulates in secondary sources.
158
+
159
+ # =========================================================================
160
+ # THE PRE-2000 PROVINCIAL SERIES.
161
+ # =========================================================================
162
+ - id: es-provincial
163
+ class: standard
164
+ categories: [car, van, truck, bus, motorcycle]
165
+ period: { start: 1999, end: 2000 }
166
+ period_evidence: instrument-window
167
+ format:
168
+ pattern: "LL-9999-LL"
169
+ regex: '\A[A-Z]{1,2}-\d{4}-[A-Z]{1,2}\z'
170
+ regex_strict: '\A(?:AB|AL|AV|BA|BI|BU|CA|CC|CE|CO|CR|CS|CU|GC|GI|GR|GU|HU|IB|LE|LO|LU|MA|ML|MU|NA|OU|PO|SA|SE|SG|SO|SS|TE|TF|TO|VA|VI|ZA|A|B|C|H|J|L|M|O|P|S|T|V|Z)-\d{4}-[A-Z]{1,2}\z'
171
+ charset:
172
+ notes: >-
173
+ Anexo XVIII I.A.a) as ORIGINALLY enacted, verbatim: "tres grupos de
174
+ caracteres, constituidos por la contraseña de la provincia donde se
175
+ matricula el vehículo; un número de cuatro cifras, que irá desde el 0000 al
176
+ 9999, y una o dos letras de una serie, que comienza por la letra A y
177
+ termina por las letras ZZ, sin emplearse aquellas letras del alfabeto que
178
+ puedan dar lugar a confusión." Note the trailing letter group here starts at
179
+ A (not BBB) and is ONE OR TWO letters, and that the excluded letters are
180
+ NOT enumerated in this text — hence regex_strict keeps [A-Z]{1,2} for that
181
+ group and constrains only the province contraseña, which IS enumerated
182
+ (Anexo XVIII II.A, 52 codes).
183
+ separator_note: "Anexo XVIII prescribes three groups and their mm spacing (Cuadro 1 rows 'ordinaria ... con siglas de provincia'), not a separator glyph; the hyphen is the conventional printed rendering."
184
+ design:
185
+ plate: { w: 520, h: 110, unit: mm, reflective_surface: { w: 510, h: 100 } }
186
+ plate_variants:
187
+ - { w: 340, h: 220, unit: mm, note: "ordinaria alta con siglas de provincia" }
188
+ - { w: 340, h: 110, unit: mm, note: "ordinaria larga delantera con siglas de provincia" }
189
+ - { w: 220, h: 160, unit: mm, note: "motocicletas ordinaria con siglas de provincia" }
190
+ characters: { w: 45, h: 77, stroke: 10, gap: 8, group_gap: 27, unit: mm }
191
+ background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed, spec: blanco }
192
+ foreground: "#000000"
193
+ band: { side: none }
194
+ note: >-
195
+ No EU band: the band arrived with the Orden of 15-09-2000. Owners of
196
+ pre-2000 vehicles MAY voluntarily re-plate to the banded design while
197
+ KEEPING their provincial registration (Disposición transitoria primera), and
198
+ MUST adopt the new dimensions if they replace plates after loss, theft or
199
+ deterioration (Disposición transitoria segunda) — which is why the
200
+ consolidated Cuadro 1 still carries four "con siglas de provincia" rows
201
+ today, footnoted "Placas de matrícula con arreglo a lo establecido en las
202
+ disposiciones transitorias de la Orden de 15 de septiembre de 2000".
203
+ region_encoding: "plates/_decode/es-provinces.yml"
204
+ sources:
205
+ - "https://www.boe.es/buscar/doc.php?id=BOE-A-1999-1826 # ORIGINAL RD 2822/1998 text, Anexo XVIII I.A.a): province contraseña + 4 digits + 1-2 letters (A..ZZ); BOE Análisis block: 'Fecha de entrada en vigor: 26/07/1999'"
206
+ - "https://www.boe.es/buscar/doc.php?id=BOE-A-2000-16805 # the Orden that replaced it, in force 17-09-2000, plus both disposiciones transitorias (voluntary re-plating; mandatory new dimensions on replacement)"
207
+ - "https://www.boe.es/buscar/pdf/1999/BOE-A-1999-1826-consolidado.pdf # Anexo XVIII II.A: the 52 province contraseñas; Cuadro 1 'con siglas de provincia' rows"
208
+ notes: >-
209
+ THE PROVINCIAL SYSTEM — Spain's only region-decodable series. PERIOD CAVEAT,
210
+ stated plainly: start/end here record the INSTRUMENT WINDOW in which this
211
+ format was the enacted ordinary-car format (RD 2822/1998 in force 26-07-1999;
212
+ superseded for new registrations 17-09-2000), NOT the life of the system. The
213
+ province + 4 digits + 1-2 letters shape is much older — commonly given as
214
+ 1971 — but no primary for that start was secured in this pass, so it is a
215
+ recorded gap rather than an invented date, and the id is deliberately
216
+ `es-provincial` and not `es-provincial-1971`. Plates already issued remain
217
+ valid indefinitely and are re-issued on request; RGV Art. 27.2 lets an owner
218
+ swap a provincial plate for a national one on a change of province.
219
+
220
+ # =========================================================================
221
+ # ORDINARY SPECIAL SERIES — prefix letter + 4 digits + 3 letters, all from
222
+ # RD 2822/1998 itself (in force 26-07-1999), all still current.
223
+ # =========================================================================
224
+ - id: es-special-vehicles-1999
225
+ class: agricultural
226
+ categories: [tractor, machine]
227
+ period: { start: 1999 }
228
+ period_evidence: instrument-in-force
229
+ format:
230
+ pattern: "E9999LLL"
231
+ regex: '\AE\d{4}[A-Z]{3}\z'
232
+ regex_strict: '\AE\d{4}[BCDFGHJKLMNPRSTVWXYZ]{3}\z'
233
+ charset: { notes: "letter E prefix; 4 digits 0000-9999; 3 letters BBB->ZZZ minus vowels/Ñ/Q/CH/LL" }
234
+ design:
235
+ plate: { w: 340, h: 110, unit: mm, reflective_surface: { w: 330, h: 100 } }
236
+ plate_variants:
237
+ - { w: 280, h: 200, unit: mm, reflective_surface: { w: 270, h: 190 }, note: "vehículos especiales alta" }
238
+ characters: { w: 30, h: 60, stroke: 6, unit: mm }
239
+ background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed, spec: blanco }
240
+ foreground: "#CE1126"
241
+ foreground_note: "RED matte embossed characters on white — 'Los caracteres estampados en relieve irán pintados en color rojo mate'. hex_basis observed; Cuadro 3 'rojo' gamut applies (CIE centroid #FF111A)."
242
+ band: { side: none }
243
+ region_encoding: none
244
+ sources:
245
+ - "https://www.boe.es/buscar/pdf/1999/BOE-A-1999-1826-consolidado.pdf # Anexo XVIII I.A.b) vehículos especiales: white ground, red matte characters, letter E + 4 digits + 3 letters; Cuadro 1: 340x110 larga / 280x200 alta, characters 30x60/6"
246
+ - "https://www.boe.es/buscar/doc.php?id=BOE-A-1999-1826 # original text, same wording minus the CH/LL inciso; in force 26-07-1999"
247
+ notes: >-
248
+ VEHÍCULOS ESPECIALES (agricultural and works/services machinery). The only
249
+ Spanish series with RED characters on white, and notably NOT 520 mm wide — the
250
+ long form is 340 x 110. CLASS CAVEAT: _meta/classes.yml has no "special
251
+ vehicle"/"works machinery" class; `agricultural` is the closest fit and covers
252
+ the dominant population (maquinaria agrícola), but the statutory category is
253
+ broader ("de obras y servicios"). Flagged as a vocabulary gap.
254
+
255
+ - id: es-trailer-1999
256
+ class: trailer
257
+ categories: [trailer, semitrailer]
258
+ period: { start: 1999 }
259
+ period_evidence: instrument-in-force
260
+ format:
261
+ pattern: "R9999LLL"
262
+ regex: '\AR\d{4}[A-Z]{3}\z'
263
+ regex_strict: '\AR\d{4}[BCDFGHJKLMNPRSTVWXYZ]{3}\z'
264
+ design:
265
+ plate: { w: 520, h: 110, unit: mm, reflective_surface: { w: 510, h: 100 } }
266
+ plate_variants:
267
+ - { w: 340, h: 220, unit: mm, reflective_surface: { w: 330, h: 210 }, note: "remolques alta" }
268
+ characters: { w: 45, h: 77, stroke: 10, gap: 12, group_gap: 30, unit: mm }
269
+ background: { color: "#CE1126", finish: retroreflective, hex_basis: observed, hex_cie_centroid: "#FF111A", spec: rojo }
270
+ foreground: "#000000"
271
+ band: { side: none }
272
+ region_encoding: none
273
+ sources:
274
+ - "https://www.boe.es/buscar/pdf/1999/BOE-A-1999-1826-consolidado.pdf # Anexo XVIII I.A.c): 'El fondo de las placas será retrorreflectante, de color rojo. Los caracteres estampados en relieve irán pintados en color negro mate'; letter R + number + 3 letters; Cuadro 1 dimensions"
275
+ notes: >-
276
+ REMOLQUES Y SEMIRREMOLQUES — a RED plate with black characters, the inverse of
277
+ the special-vehicle plate. Trailers over 750 kg carry this plus a second
278
+ plate on the right bearing the towing vehicle's registration (Anexo XVIII
279
+ III.4). Trailers and semi-trailers share one series here because Anexo XVIII
280
+ treats them in one subparagraph with one prefix letter — contrast the
281
+ Netherlands, where W and O split them.
282
+
283
+ - id: es-moped-1999
284
+ class: moped
285
+ categories: [moped, quadricycle]
286
+ period: { start: 1999 }
287
+ period_evidence: instrument-in-force
288
+ format:
289
+ pattern: "C9999LLL"
290
+ regex: '\AC\d{4}[A-Z]{3}\z'
291
+ regex_strict: '\AC\d{4}[BCDFGHJKLMNPRSTVWXYZ]{3}\z'
292
+ layout: >-
293
+ THREE ROWS as originally enacted: row 1 = letter C plus the thousands digit
294
+ of the 0000-9999 number; row 2 = the remaining three digits; row 3 = the
295
+ three letters. The consolidated text describes it as "tres grupos"; the
296
+ three-row layout survives in the 100 x 168 "ciclomotores alta" plate.
297
+ design:
298
+ plate: { w: 100, h: 168, unit: mm, reflective_surface: { w: 90, h: 158 }, note: "ciclomotores alta (portrait, three rows)" }
299
+ plate_variants:
300
+ - { w: 140, h: 120, unit: mm, reflective_surface: { w: 130, h: 110 }, note: "ciclomotores larga" }
301
+ - { w: 210, h: 85, unit: mm, reflective_surface: { w: 200, h: 75 }, note: "cuatriciclos ligeros — also used for three-wheeled ciclomotores" }
302
+ - { w: 520, h: 110, unit: mm, reflective_surface: { w: 510, h: 100 }, note: "cuatriciclos ligeros larga" }
303
+ characters: { w: 13, h: 30, stroke: 3.5, unit: mm, tolerance: "+/- 3 mm between characters" }
304
+ background: { color: "#F9B700", finish: retroreflective, hex_basis: observed, hex_cie_centroid: "#FFC000", spec: amarillo }
305
+ foreground: "#000000"
306
+ band: { side: none }
307
+ region_encoding: none
308
+ sources:
309
+ - "https://www.boe.es/buscar/pdf/1999/BOE-A-1999-1826-consolidado.pdf # Anexo XVIII I.A.d) ciclomotores: yellow retroreflective ground, black matte characters, letter C + 4 digits + 3 letters; Cuadro 1 ciclomotores/cuatriciclos rows"
310
+ - "https://www.boe.es/buscar/doc.php?id=BOE-A-1999-1826 # original text: the explicit THREE-ROW layout for ciclomotores"
311
+ notes: >-
312
+ CICLOMOTORES Y CICLOS DE MOTOR — yellow ground, black characters. RGV
313
+ transitional provision required mopeds bought before the RGV and registered
314
+ only with municipalities to be brought onto the national register within six
315
+ months of entry into force. Light quadricycles and three-wheeled mopeds share
316
+ this yellow design (Cuadro 1 note 6), which is why `quadricycle` appears in
317
+ categories — a kinds-vocabulary extension the schema takes without change.
318
+
319
+ - id: es-historic-1999
320
+ class: historic
321
+ categories: [car, van, truck, bus, motorcycle, moped]
322
+ period: { start: 1999 }
323
+ period_evidence: instrument-in-force
324
+ format:
325
+ pattern: "H9999LLL"
326
+ regex: '\AH\d{4}[A-Z]{3}\z'
327
+ regex_strict: '\AH\d{4}[BCDFGHJKLMNPRSTVWXYZ]{3}\z'
328
+ design:
329
+ plate: { w: 520, h: 110, unit: mm, reflective_surface: { w: 510, h: 100 } }
330
+ plate_variants:
331
+ - { w: 340, h: 220, unit: mm, note: "vehículo histórico alta" }
332
+ - { w: 220, h: 160, unit: mm, note: "vehículo histórico motocicletas" }
333
+ - { w: 100, h: 168, unit: mm, note: "vehículo histórico ciclomotores" }
334
+ characters: { w: 45, h: 77, stroke: 10, gap: 10, group_gap: 35, unit: mm }
335
+ background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed, spec: blanco }
336
+ foreground: "#000000"
337
+ band: { side: none }
338
+ region_encoding: none
339
+ sources:
340
+ - "https://www.boe.es/buscar/pdf/1999/BOE-A-1999-1826-consolidado.pdf # Anexo XVIII I.B.c) vehículo histórico: white ground, black matte characters, letter H + 4 digits + 3 letters; Cuadro 1 four histórico rows"
341
+ notes: >-
342
+ VEHÍCULO HISTÓRICO. Visually near-identical to the ordinary series (white/black)
343
+ and distinguished by the H prefix rather than by colour — the opposite design
344
+ choice to the Netherlands, whose oldtimer plate is dark blue but keeps its
345
+ original serial. Spain has a dedicated historic SERIAL SERIES; the Netherlands
346
+ has a dedicated historic DESIGN. The age threshold sits in the historic-vehicle
347
+ regulation (RD 1247/1995), which was not fetched in this pass — recorded gap.
348
+
349
+ - id: es-tourist-1999
350
+ class: temporary
351
+ categories: [car, van, motorcycle]
352
+ period: { start: 1999 }
353
+ period_evidence: instrument-in-force
354
+ format:
355
+ pattern: "T9999LLL"
356
+ regex: '\AT\d{4}[A-Z]{3}\z'
357
+ regex_strict: '\AT\d{4}[BCDFGHJKLMNPRSTVWXYZ]{3}\z'
358
+ design:
359
+ plate: { w: 520, h: 110, unit: mm, reflective_surface: { w: 510, h: 100 } }
360
+ plate_variants:
361
+ - { w: 340, h: 220, unit: mm, note: "turística alta" }
362
+ characters: { w: 45, h: 77, stroke: 10, gap: 10, group_gap: [20, 30], unit: mm }
363
+ background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed, spec: blanco }
364
+ foreground: "#000000"
365
+ band:
366
+ side: right
367
+ color: "#CE1126"
368
+ hex_basis: observed
369
+ spec: rojo
370
+ content: expiry-month-roman-over-year-arabic
371
+ note: >-
372
+ "La banda vertical en donde se consignan el mes y el año en que caducan,
373
+ expresándose el primero en caracteres romanos y el segundo en caracteres de
374
+ tipo árabe, será retrorreflectante de color rojo. Los caracteres que en
375
+ ella se consignan serán adhesivos de color blanco mate" — 15 x 8 x 2 mm
376
+ adhesive characters, band width 30 mm (Cuadro 3).
377
+ region_encoding: none
378
+ sources:
379
+ - "https://www.boe.es/buscar/pdf/1999/BOE-A-1999-1826-consolidado.pdf # Anexo XVIII I.B.b) matrícula turística: white ground, black matte characters, letter T + 4 digits + 3 letters, RED expiry band with white adhesive characters; Cuadro 3: band 30 mm, characters 15x8x2 mm"
380
+ notes: >-
381
+ MATRÍCULA TURÍSTICA — a tax-privileged temporary registration with the expiry
382
+ month in ROMAN numerals and the year in Arabic on a red vertical band. The
383
+ only Spanish plate that carries its own expiry date on its face, and the only
384
+ one whose band sits on the right. CLASS CAVEAT: recorded as `temporary`; the
385
+ statutory category is its own ("matrícula especial") and is neither ordinary
386
+ nor a circulation permit.
387
+
388
+ - id: es-temporary-private-1999
389
+ class: temporary
390
+ categories: [car, van, truck, bus, motorcycle, moped, trailer, semitrailer]
391
+ period: { start: 1999 }
392
+ period_evidence: instrument-in-force
393
+ format:
394
+ pattern: "P9999LLL"
395
+ regex: '\AP\d{4}[A-Z]{3}\z'
396
+ regex_strict: '\AP\d{4}[BCDFGHJKLMNPRSTVWXYZ]{3}\z'
397
+ layout: "Motor vehicles and trailers: three groups on one line. CICLOMOTORES: three ROWS — row 1 = letter P plus the thousands digit, row 2 = the remaining three digits, row 3 = the three letters."
398
+ design:
399
+ plate: { w: 520, h: 110, unit: mm, reflective_surface: { w: 510, h: 100 } }
400
+ plate_variants:
401
+ - { w: 280, h: 200, unit: mm, reflective_surface: { w: 270, h: 190 }, note: "temporal particular alta" }
402
+ - { w: 100, h: 168, unit: mm, reflective_surface: { w: 90, h: 158 }, note: "temporal particular ciclomotores" }
403
+ characters: { w: 30, h: 60, stroke: 6, gap: 16, unit: mm }
404
+ background: { color: "#007A33", finish: retroreflective, hex_basis: observed, hex_cie_centroid: "#00FFB3", spec: verde }
405
+ foreground: "#FFFFFF"
406
+ band: { side: none }
407
+ region_encoding: none
408
+ sources:
409
+ - "https://www.boe.es/buscar/pdf/1999/BOE-A-1999-1826-consolidado.pdf # Anexo XVIII I.C.a) permisos temporales para particulares: 'El fondo de las placas será retrorreflectante, de color verde. Los caracteres estampados en relieve irán pintados en color blanco mate'; letter P; the three-row ciclomotor layout"
410
+ notes: >-
411
+ TEMPORARY PERMIT FOR PRIVATE INDIVIDUALS — GREEN ground, white characters,
412
+ prefix P. Spain colour-codes temporary permits by HOLDER TYPE: green for
413
+ individuals (this entry), red for companies (es-temporary-company-*). Note the
414
+ Cuadro 3 green box is wide and its minimum luminance factor is only 0.04, so
415
+ the rendered hex is a conventional choice, not a spec value — the centroid
416
+ conversion lands at a much lighter #00FFB3.
417
+
418
+ - id: es-temporary-company-unregistered-1999
419
+ class: dealer
420
+ categories: [car, van, truck, bus, motorcycle, moped, trailer, semitrailer]
421
+ period: { start: 1999 }
422
+ period_evidence: instrument-in-force
423
+ format:
424
+ pattern: "S9999LLL"
425
+ regex: '\AS\d{4}[A-Z]{3}\z'
426
+ regex_strict: '\AS\d{4}[BCDFGHJKLMNPRSTVWXYZ]{3}\z'
427
+ layout: "one line for motor vehicles and trailers; three rows for ciclomotores (letter S + thousands digit / three digits / three letters)"
428
+ design:
429
+ plate: { w: 520, h: 110, unit: mm, reflective_surface: { w: 510, h: 100 } }
430
+ plate_variants:
431
+ - { w: 280, h: 200, unit: mm, note: "temporal empresas alta" }
432
+ - { w: 100, h: 168, unit: mm, note: "temporal empresas ciclomotores" }
433
+ characters: { w: 30, h: 60, stroke: 6, gap: 16, group_gap: 57.5, unit: mm }
434
+ background: { color: "#CE1126", finish: retroreflective, hex_basis: observed, hex_cie_centroid: "#FF111A", spec: rojo }
435
+ foreground: "#FFFFFF"
436
+ band:
437
+ side: right
438
+ color: "#FFFFFF"
439
+ hex_basis: observed
440
+ spec: blanco
441
+ content: expiry-month-roman-over-year-arabic
442
+ note: "WHITE band with RED matte adhesive characters — the inverse of the tourist plate's red band with white characters. Band width 30 mm (20 mm on the ciclomotor plate)."
443
+ region_encoding: none
444
+ sources:
445
+ - "https://www.boe.es/buscar/pdf/1999/BOE-A-1999-1826-consolidado.pdf # Anexo XVIII I.C.b): red ground, white matte characters, 'la letra S, para los vehículos no matriculados'; white expiry band with red adhesive characters; Cuadro 3 band widths 30/20 mm"
446
+ notes: >-
447
+ TEMPORARY PERMIT FOR COMPANIES, UNREGISTERED VEHICLES — prefix S. This is
448
+ Spain's functional dealer/trade plate. Its own series and not a variant of the
449
+ V plate below, because the statute assigns a DIFFERENT PREFIX LETTER, which is
450
+ a format difference (PRD-PLATES §2.3). CLASS CAVEAT: recorded as `dealer`
451
+ because it is bound to a business rather than a vehicle; the statutory name is
452
+ "permiso temporal para empresas".
453
+
454
+ - id: es-temporary-company-registered-1999
455
+ class: dealer
456
+ categories: [car, van, truck, bus, motorcycle, moped, trailer, semitrailer]
457
+ period: { start: 1999 }
458
+ period_evidence: instrument-in-force
459
+ format:
460
+ pattern: "V9999LLL"
461
+ regex: '\AV\d{4}[A-Z]{3}\z'
462
+ regex_strict: '\AV\d{4}[BCDFGHJKLMNPRSTVWXYZ]{3}\z'
463
+ design:
464
+ plate: { w: 520, h: 110, unit: mm, reflective_surface: { w: 510, h: 100 } }
465
+ plate_variants:
466
+ - { w: 280, h: 200, unit: mm }
467
+ - { w: 100, h: 168, unit: mm }
468
+ characters: { w: 30, h: 60, stroke: 6, gap: 16, group_gap: 57.5, unit: mm }
469
+ background: { color: "#CE1126", finish: retroreflective, hex_basis: observed, spec: rojo }
470
+ foreground: "#FFFFFF"
471
+ band: { side: right, color: "#FFFFFF", hex_basis: observed, spec: blanco, content: expiry-month-roman-over-year-arabic }
472
+ region_encoding: none
473
+ sources:
474
+ - "https://www.boe.es/buscar/pdf/1999/BOE-A-1999-1826-consolidado.pdf # Anexo XVIII I.C.b): '...o la letra V, para los matriculados' — same red design, different prefix"
475
+ notes: >-
476
+ TEMPORARY PERMIT FOR COMPANIES, ALREADY-REGISTERED VEHICLES — prefix V.
477
+ Identical design to the S series; the prefix letter is the only difference and
478
+ it encodes whether the vehicle already holds a registration. A parse API must
479
+ keep them apart, which is why they are two series with distinct notes rather
480
+ than one entry with an alternation.
481
+
482
+ # =========================================================================
483
+ # DIPLOMATIC AND OFFICIAL SERIES. Anexo XVIII specifies the LETTERS and the
484
+ # GROUP STRUCTURE ("dos grupos de guarismos") but NOT the digit widths and
485
+ # NOT the separator glyph — so every regex here uses unbounded \d+ and a
486
+ # permissive separator, deliberately making no width claim.
487
+ # =========================================================================
488
+ - id: es-diplomatic-cd-1999
489
+ class: diplomatic
490
+ categories: [car, van, motorcycle]
491
+ period: { start: 1999 }
492
+ period_evidence: instrument-in-force
493
+ format:
494
+ pattern: "CD-999-999"
495
+ regex: '\ACD[- ]\d+[- ]\d+\z'
496
+ pattern_note: >-
497
+ The three-digit groups in the pattern are REPRESENTATIVE ONLY. Anexo XVIII
498
+ says "las letras CD, seguidas por dos grupos de guarismos" and fixes neither
499
+ width; the regex is intentionally unbounded so it makes no width claim.
500
+ progression: >-
501
+ Group 1 is an invariable per-mission prefix, assigned in the alphabetical
502
+ order of the Foreign Ministry's most recent official diplomatic list, with
503
+ prefix "-1-" reserved for the Decanato del Cuerpo Diplomático; missions that
504
+ later accredit permanent ambassadors are appended by seniority. Group 2 is a
505
+ serial within the mission, proposed by the mission itself.
506
+ design:
507
+ plate: { w: 520, h: 110, unit: mm, reflective_surface: { w: 510, h: 100 } }
508
+ characters: { w: 45, h: 77, stroke: 10, gap: 14, group_gap: [80, 48], unit: mm }
509
+ background: { color: "#CE1126", finish: retroreflective, hex_basis: observed, hex_cie_centroid: "#FF111A", spec: rojo }
510
+ foreground: "#FFFFFF"
511
+ band: { side: none }
512
+ region_encoding: "mission prefix — decode table not authored (see notes)"
513
+ sources:
514
+ - "https://www.boe.es/buscar/pdf/1999/BOE-A-1999-1826-consolidado.pdf # Anexo XVIII I.B.a).1: Cuerpo diplomático — red retroreflective ground, white matte embossed characters, letters CD + two digit groups, prefix assignment rule and the '-1-' Decanato reservation; Cuadro 1 dimensions"
515
+ notes: >-
516
+ CUERPO DIPLOMÁTICO — red ground, white characters. The mission-prefix DECODE
517
+ TABLE is not authored: Anexo XVIII states the ASSIGNMENT RULE (alphabetical
518
+ order of the Foreign Ministry's official diplomatic list) but not the resulting
519
+ codes, and that list was not fetched in this pass. PRD-PLATES puts diplomatic
520
+ decode tables at gate L4; this entry carries the mechanism so the table can be
521
+ hung off it later without an id change.
522
+
523
+ - id: es-international-oi-1999
524
+ class: diplomatic
525
+ categories: [car, van, motorcycle]
526
+ period: { start: 1999 }
527
+ period_evidence: instrument-in-force
528
+ format:
529
+ pattern: "OI-999-999"
530
+ regex: '\AOI[- ]\d+[- ]\d+\z'
531
+ pattern_note: "digit-group widths are representative only; Anexo XVIII fixes neither"
532
+ progression: "group 1 is an invariable per-organisation prefix, assigned by seniority in a series running consecutively after the one reserved for diplomatic missions; group 2 is a serial within the organisation"
533
+ design:
534
+ plate: { w: 520, h: 110, unit: mm, reflective_surface: { w: 510, h: 100 } }
535
+ characters: { w: 45, h: 77, stroke: 10, gap: 14, group_gap: [80, 48], unit: mm }
536
+ background: { color: "#003399", finish: retroreflective, hex_basis: observed, hex_cie_centroid: "#0083FF", spec: azul }
537
+ foreground: "#FFFFFF"
538
+ band: { side: none }
539
+ region_encoding: "organisation prefix — decode table not authored"
540
+ sources:
541
+ - "https://www.boe.es/buscar/pdf/1999/BOE-A-1999-1826-consolidado.pdf # Anexo XVIII I.B.a).2: organizaciones internacionales — blue retroreflective ground, white matte characters, letters OI + two digit groups"
542
+ notes: >-
543
+ ORGANIZACIONES INTERNACIONALES — blue ground, white characters. CLASS CAVEAT:
544
+ recorded as `diplomatic` because _meta/classes.yml has no
545
+ international-organisation class; the statutory category is its own and its
546
+ prefix series is explicitly separate from (though consecutive with) the
547
+ diplomatic one. Flagged as a vocabulary gap.
548
+
549
+ - id: es-consular-cc-1999
550
+ class: consular
551
+ categories: [car, van, motorcycle]
552
+ period: { start: 1999 }
553
+ period_evidence: instrument-in-force
554
+ format:
555
+ pattern: "CC-999-999"
556
+ regex: '\ACC[- ]\d+[- ]\d+\z'
557
+ pattern_note: "digit-group widths are representative only"
558
+ progression: "group 1 is the prefix of the diplomatic mission the consular office depends on; where there is no such dependency a prefix is assigned to the state itself. Group 2 follows the diplomatic rule, or the head of the consular office's proposal where the office is not attached to an accredited mission."
559
+ design:
560
+ plate: { w: 520, h: 110, unit: mm, reflective_surface: { w: 510, h: 100 } }
561
+ characters: { w: 45, h: 77, stroke: 10, gap: 14, group_gap: [80, 48], unit: mm }
562
+ background: { color: "#007A33", finish: retroreflective, hex_basis: observed, hex_cie_centroid: "#00FFB3", spec: verde }
563
+ foreground: "#FFFFFF"
564
+ band: { side: none }
565
+ region_encoding: "mission prefix — decode table not authored"
566
+ sources:
567
+ - "https://www.boe.es/buscar/pdf/1999/BOE-A-1999-1826-consolidado.pdf # Anexo XVIII I.B.a).3: oficinas consulares — green retroreflective ground, white matte characters, letters CC + two digit groups; prefix inherited from the parent diplomatic mission"
568
+ notes: >-
569
+ OFICINAS CONSULARES — green ground, white characters. COLLISION WORTH FLAGGING
570
+ for the parse API: "CC" is also the province contraseña for CÁCERES in Anexo
571
+ XVIII II.A, so the string "CC-1234-AB" is a valid provincial car plate while
572
+ "CC-12-345" is consular. Disambiguation is by group structure (4 digits + 1-2
573
+ letters vs two digit groups), not by prefix.
574
+
575
+ - id: es-diplomatic-staff-ta-1999
576
+ class: diplomatic
577
+ categories: [car, van, motorcycle]
578
+ period: { start: 1999 }
579
+ period_evidence: instrument-in-force
580
+ format:
581
+ pattern: "TA-999-999"
582
+ regex: '\ATA[- ]\d+[- ]\d+\z'
583
+ pattern_note: "digit-group widths are representative only"
584
+ progression: "group 1 identifies the diplomatic mission, international organisation or consular office; group 2 is a serial among that body's technical-administrative staff, on its proposal"
585
+ design:
586
+ plate: { w: 520, h: 110, unit: mm, reflective_surface: { w: 510, h: 100 } }
587
+ characters: { w: 45, h: 77, stroke: 10, gap: 14, group_gap: [80, 48], unit: mm }
588
+ background: { color: "#F9B700", finish: retroreflective, hex_basis: observed, hex_cie_centroid: "#FFC000", spec: amarillo }
589
+ foreground: "#000000"
590
+ band: { side: none }
591
+ region_encoding: "body prefix — decode table not authored"
592
+ sources:
593
+ - "https://www.boe.es/buscar/pdf/1999/BOE-A-1999-1826-consolidado.pdf # Anexo XVIII I.B.a).4: personal técnico-administrativo — yellow retroreflective ground, black matte characters, letters TA + two digit groups"
594
+ notes: >-
595
+ PERSONAL TÉCNICO-ADMINISTRATIVO of missions, international organisations and
596
+ consular offices — yellow ground, black characters. RGV transitional provision
597
+ three preserved existing matrícula turística permits held by this staff until
598
+ their validity expired, which is the documented bridge from the pre-1999
599
+ arrangement.
600
+
601
+ - id: es-military-1999
602
+ class: military
603
+ categories: [car, van, truck, bus, motorcycle, trailer]
604
+ period: { start: 1999 }
605
+ period_evidence: instrument-in-force
606
+ format:
607
+ pattern: "ET-999999"
608
+ regex: '\A(?:ET|FN|EA)[- ]\d+(?:-VE)?\z'
609
+ pattern_note: "digit width is representative only — Anexo XVIII II.B lists the contraseñas but states no numbering grammar"
610
+ charset: { contraseñas: { ET: "Ejército de Tierra", FN: "Armada", EA: "Ejército del Aire" }, suffix: "special vehicles append '-VE' after a hyphen" }
611
+ design:
612
+ band: { side: none }
613
+ note: >-
614
+ Anexo XVIII II.B lists the contraseñas ONLY — it prescribes no colours and no
615
+ dimensions for state plates, and section I (Colores e inscripciones) does not
616
+ cover them. Colours are therefore deliberately ABSENT here rather than
617
+ guessed; recorded gap.
618
+ region_encoding: none
619
+ sources:
620
+ - "https://www.boe.es/buscar/pdf/1999/BOE-A-1999-1826-consolidado.pdf # Anexo XVIII II.B: 'ET, FN y EA: Para vehículos pertenecientes al Ministerio de Defensa, correspondientes, respectivamente al Ejército de Tierra, Armada y Ejército del Aire' and the '-VE' rule for vehículos especiales"
621
+ notes: >-
622
+ MINISTRY OF DEFENCE fleets — Army (ET), Navy (FN), Air Force (EA). One series
623
+ because Anexo XVIII II.B treats the three contraseñas in a single provision
624
+ with a single numbering rule; the branch is decodable from the contraseña.
625
+ Colours and dimensions are NOT in Anexo XVIII for state plates and are not
626
+ invented here.
627
+
628
+ - id: es-nato-fae-1999
629
+ class: military
630
+ categories: [car, van, truck, bus]
631
+ period: { start: 1999 }
632
+ period_evidence: instrument-in-force
633
+ format:
634
+ pattern: "FAE-999999"
635
+ regex: '\AFAE[- ]\d+(?:-VE)?\z'
636
+ pattern_note: "digit width representative only"
637
+ design:
638
+ band: { side: none }
639
+ note: "no colour or dimension specified in Anexo XVIII II.B — recorded gap"
640
+ region_encoding: none
641
+ sources:
642
+ - "https://www.boe.es/buscar/pdf/1999/BOE-A-1999-1826-consolidado.pdf # Anexo XVIII II.B: 'FAE: Para los vehículos al servicio de los Cuarteles Generales Militares Internacionales de la OTAN matriculados en España'"
643
+ notes: >-
644
+ NATO INTERNATIONAL MILITARY HEADQUARTERS registered in Spain. The Spanish
645
+ counterpart of Germany's "X" Unterscheidungszeichen (FZV Anlage 2), and worth
646
+ pairing with it when the encyclopedia covers NATO-status vehicles.
647
+
648
+ - id: es-government-1999
649
+ class: government
650
+ categories: [car, van, truck, bus]
651
+ period: { start: 1999 }
652
+ period_evidence: instrument-in-force
653
+ format:
654
+ pattern: "PME-999999"
655
+ regex: '\A(?:PME|MF|MMA)[- ]\d+(?:-VE)?\z'
656
+ pattern_note: "digit width representative only"
657
+ charset: { contraseñas: { PME: "Parque Móvil del Estado", MF: "Parque del Ministerio de Fomento", MMA: "Parque del Ministerio de Medio Ambiente" } }
658
+ design:
659
+ band: { side: none }
660
+ note: "no colour or dimension specified in Anexo XVIII II.B — recorded gap"
661
+ region_encoding: none
662
+ sources:
663
+ - "https://www.boe.es/buscar/pdf/1999/BOE-A-1999-1826-consolidado.pdf # Anexo XVIII II.B: MF, MMA and PME contraseñas"
664
+ notes: >-
665
+ CENTRAL GOVERNMENT FLEETS. PERIOD-ROT WARNING for the decode discipline
666
+ PRD-PLATES §9 calls out: MF (Ministerio de Fomento) and MMA (Ministerio de
667
+ Medio Ambiente) name ministries that have since been reorganised and renamed,
668
+ yet the consolidated Anexo XVIII still lists them. The codes are current law;
669
+ the ministry names behind them are not current fact. Recorded as-enacted.
670
+
671
+ - id: es-police-1999
672
+ class: police
673
+ categories: [car, van, truck, motorcycle]
674
+ period: { start: 1999 }
675
+ period_evidence: instrument-in-force
676
+ format:
677
+ pattern: "CNP-999999"
678
+ regex: '\A(?:CNP|PGC)[- ]\d+(?:-VE)?\z'
679
+ pattern_note: "digit width representative only"
680
+ charset: { contraseñas: { CNP: "Cuerpo Nacional de Policía", PGC: "Cuerpo de la Guardia Civil" } }
681
+ design:
682
+ band: { side: none }
683
+ note: "no colour or dimension specified in Anexo XVIII II.B — recorded gap"
684
+ region_encoding: none
685
+ sources:
686
+ - "https://www.boe.es/buscar/pdf/1999/BOE-A-1999-1826-consolidado.pdf # Anexo XVIII II.B: CNP and PGC, both under the Dirección General de la Policía y de la Guardia Civil"
687
+ notes: >-
688
+ NATIONAL POLICE (CNP) and GUARDIA CIVIL (PGC). Note that RGV Art. 27.5 lets
689
+ an autonomous community's police force use plates "con una contraseña y
690
+ numeración propias" within that community, in addition to ordinary
691
+ registration — so autonomous-community police codes exist OUTSIDE Anexo XVIII
692
+ and are a recorded gap for L1 (Ertzaintza, Mossos d'Esquadra, Policía Foral).