Skip to main content

step_io/generated/
generic_normalize.rs

1// @generated by codegen. DO NOT EDIT.
2// Schema-faithful model + generic 2-pass read + topo write.
3
4use crate::parser::{Attribute, RawEntity};
5use std::collections::BTreeMap;
6
7#[derive(Clone, Copy)]
8enum Sk {
9    Real,
10    Int,
11    Str,
12    Bin,
13    Bool,
14    Log,
15    Enum,
16    Ref,
17    Vec,
18    Meas,
19}
20#[derive(Clone, Copy)]
21struct Slot {
22    k: Sk,
23    req: bool,
24    der: bool,
25    swire: Option<&'static str>,
26}
27
28/// Value-level canonical: signed-zero -0.0 -> +0.0, recursively (incl. lists).
29fn canon(a: &mut Attribute) {
30    match a {
31        Attribute::Real(r) => {
32            if *r == 0.0 {
33                *r = 0.0_f64;
34            }
35        }
36        Attribute::List(v) => {
37            for e in v.iter_mut() {
38                canon(e);
39            }
40        }
41        Attribute::Typed { value, .. } => canon(value),
42        _ => {}
43    }
44}
45
46/// A non-standard bare scalar select member (`5.` / `'x'`) -> the standard Typed
47/// literal `WIRE(value)`. Only the single-scalar-arm case (unambiguous wire) is
48/// normalized here; entity refs (`#n`) and already-typed values are left alone.
49fn wrap_bare_scalar(a: &mut Attribute, wire: &'static str) -> bool {
50    match a {
51        Attribute::Real(_) | Attribute::Integer(_) | Attribute::String(_) => {
52            let inner = std::mem::replace(a, Attribute::Unset);
53            *a = Attribute::Typed {
54                type_name: wire.to_string(),
55                value: Box::new(inner),
56            };
57            true
58        }
59        _ => false,
60    }
61}
62
63/// Result of normalizing one slot value. Unchanged = already standard; Rewrite =
64/// fixed to a standard value (kept, "fix"); Drop = non-normalizable (entity removed,
65/// "drop"). The fix/drop split feeds the two surface channels (norm vs drops).
66enum NormAction {
67    Unchanged,
68    Rewrite(Attribute, &'static str),
69    Drop(&'static str),
70}
71
72/// Slot-kind general rules (single rule per slot, output is the final standard
73/// value). Value rules (int<->real) apply regardless of req; the `$`/`*` rules
74/// apply per req/derived.
75fn norm_attr(s: Slot, a: &Attribute) -> NormAction {
76    if s.der {
77        // a derived slot is always `*` on the wire; force it (drops a redundant
78        // explicit value or a non-standard `()`/`$`).
79        return if matches!(a, Attribute::Derived) {
80            NormAction::Unchanged
81        } else {
82            NormAction::Rewrite(Attribute::Derived, "derived->*")
83        };
84    }
85    match (s.k, a) {
86        (Sk::Real, Attribute::Integer(i)) => {
87            NormAction::Rewrite(Attribute::Real(*i as f64), "int->real")
88        }
89        (Sk::Int, Attribute::Real(r)) if r.fract() == 0.0 => {
90            NormAction::Rewrite(Attribute::Integer(*r as i64), "real->int")
91        }
92        (Sk::Int, Attribute::Real(_)) => NormAction::Drop("int<-fractional-real"),
93        (Sk::Str | Sk::Bin, Attribute::Unset) if s.req => {
94            NormAction::Rewrite(Attribute::String(String::new()), "req-str<-$")
95        }
96        (Sk::Vec, Attribute::Unset) if s.req => {
97            NormAction::Rewrite(Attribute::List(Vec::new()), "req-vec<-$")
98        }
99        (Sk::Ref, Attribute::Unset) if s.req => NormAction::Drop("req-ref<-$"),
100        _ => NormAction::Unchanged,
101    }
102}
103
104/// Normalize one entity's attrs. Rewrites push to `warns` (norm channel); a
105/// non-normalizable slot sets `drop_out` to its reason and returns false (the
106/// entity is removed — slot-local drop, surfaced on the drops channel).
107fn norm_attrs(
108    slots: &[Slot],
109    attrs: &mut Vec<Attribute>,
110    warns: &mut Vec<&'static str>,
111    drop_out: &mut Option<&'static str>,
112) -> bool {
113    for (i, a) in attrs.iter_mut().enumerate() {
114        canon(a);
115        if let Some(s) = slots.get(i).copied() {
116            // nested select-scalar normalization: a ref/aggregate slot whose target
117            // SELECT has a single scalar arm — rewrite bare members to typed.
118            if let Some(wire) = s.swire {
119                match s.k {
120                    Sk::Vec => {
121                        if let Attribute::List(v) = a {
122                            for e in v.iter_mut() {
123                                if wrap_bare_scalar(e, wire) {
124                                    warns.push("select-scalar bare->typed");
125                                }
126                            }
127                        }
128                    }
129                    Sk::Ref => {
130                        if wrap_bare_scalar(a, wire) {
131                            warns.push("select-scalar bare->typed");
132                        }
133                    }
134                    _ => {}
135                }
136            }
137            match norm_attr(s, a) {
138                NormAction::Unchanged => {}
139                NormAction::Rewrite(na, w) => {
140                    *a = na;
141                    warns.push(w);
142                }
143                NormAction::Drop(w) => {
144                    *drop_out = Some(w);
145                    return false;
146                }
147            }
148        }
149    }
150    true
151}
152
153/// Normalize the raw graph in place. Returns the surviving map (non-normalizable
154/// entities removed; their referrers cascade-drop later via the drop pass) plus
155/// two separate channels: `warns` = rewrite notes (fix, kept), `slot_drops` =
156/// `(id, reason)` per entity removed here (surfaced as drops).
157pub fn normalize(
158    mut map: BTreeMap<u64, RawEntity>,
159) -> (
160    BTreeMap<u64, RawEntity>,
161    Vec<&'static str>,
162    Vec<(u64, &'static str)>,
163) {
164    let mut warns: Vec<&'static str> = Vec::new();
165    let mut slot_drops: Vec<(u64, &'static str)> = Vec::new();
166    for (&id, ent) in map.iter_mut() {
167        let mut drop_reason: Option<&'static str> = None;
168        let keep = match ent {
169            RawEntity::Simple {
170                name, attributes, ..
171            } => norm_attrs(simple_slots(name), attributes, &mut warns, &mut drop_reason),
172            RawEntity::Complex { parts, .. } => {
173                let mut ok = true;
174                for p in parts.iter_mut() {
175                    if !norm_attrs(
176                        part_slots(&p.name),
177                        &mut p.attributes,
178                        &mut warns,
179                        &mut drop_reason,
180                    ) {
181                        ok = false;
182                        break;
183                    }
184                }
185                ok
186            }
187        };
188        if !keep {
189            slot_drops.push((id, drop_reason.unwrap_or("slot-local")));
190        }
191    }
192    for (id, _) in &slot_drops {
193        map.remove(id);
194    }
195    (map, warns, slot_drops)
196}
197
198fn simple_slots(n: &str) -> &'static [Slot] {
199    match n {
200        "ACTION" => &[
201            Slot {
202                k: Sk::Str,
203                req: true,
204                der: false,
205                swire: None,
206            },
207            Slot {
208                k: Sk::Str,
209                req: false,
210                der: false,
211                swire: None,
212            },
213            Slot {
214                k: Sk::Ref,
215                req: true,
216                der: false,
217                swire: None,
218            },
219        ],
220        "ACTION_ASSIGNMENT" => &[Slot {
221            k: Sk::Ref,
222            req: true,
223            der: false,
224            swire: None,
225        }],
226        "ACTION_DIRECTIVE" => &[
227            Slot {
228                k: Sk::Str,
229                req: true,
230                der: false,
231                swire: None,
232            },
233            Slot {
234                k: Sk::Str,
235                req: false,
236                der: false,
237                swire: None,
238            },
239            Slot {
240                k: Sk::Str,
241                req: true,
242                der: false,
243                swire: None,
244            },
245            Slot {
246                k: Sk::Str,
247                req: true,
248                der: false,
249                swire: None,
250            },
251            Slot {
252                k: Sk::Vec,
253                req: true,
254                der: false,
255                swire: None,
256            },
257        ],
258        "ACTION_METHOD" => &[
259            Slot {
260                k: Sk::Str,
261                req: true,
262                der: false,
263                swire: None,
264            },
265            Slot {
266                k: Sk::Str,
267                req: false,
268                der: false,
269                swire: None,
270            },
271            Slot {
272                k: Sk::Str,
273                req: true,
274                der: false,
275                swire: None,
276            },
277            Slot {
278                k: Sk::Str,
279                req: true,
280                der: false,
281                swire: None,
282            },
283        ],
284        "ACTION_METHOD_RELATIONSHIP" => &[
285            Slot {
286                k: Sk::Str,
287                req: true,
288                der: false,
289                swire: None,
290            },
291            Slot {
292                k: Sk::Str,
293                req: false,
294                der: false,
295                swire: None,
296            },
297            Slot {
298                k: Sk::Ref,
299                req: true,
300                der: false,
301                swire: None,
302            },
303            Slot {
304                k: Sk::Ref,
305                req: true,
306                der: false,
307                swire: None,
308            },
309        ],
310        "ACTION_PROPERTY" => &[
311            Slot {
312                k: Sk::Str,
313                req: true,
314                der: false,
315                swire: None,
316            },
317            Slot {
318                k: Sk::Str,
319                req: true,
320                der: false,
321                swire: None,
322            },
323            Slot {
324                k: Sk::Ref,
325                req: true,
326                der: false,
327                swire: None,
328            },
329        ],
330        "ACTION_RELATIONSHIP" => &[
331            Slot {
332                k: Sk::Str,
333                req: true,
334                der: false,
335                swire: None,
336            },
337            Slot {
338                k: Sk::Str,
339                req: false,
340                der: false,
341                swire: None,
342            },
343            Slot {
344                k: Sk::Ref,
345                req: true,
346                der: false,
347                swire: None,
348            },
349            Slot {
350                k: Sk::Ref,
351                req: true,
352                der: false,
353                swire: None,
354            },
355        ],
356        "ACTION_REQUEST_ASSIGNMENT" => &[Slot {
357            k: Sk::Ref,
358            req: true,
359            der: false,
360            swire: None,
361        }],
362        "ACTION_REQUEST_SOLUTION" => &[
363            Slot {
364                k: Sk::Ref,
365                req: true,
366                der: false,
367                swire: None,
368            },
369            Slot {
370                k: Sk::Ref,
371                req: true,
372                der: false,
373                swire: None,
374            },
375        ],
376        "ACTION_RESOURCE" => &[
377            Slot {
378                k: Sk::Str,
379                req: true,
380                der: false,
381                swire: None,
382            },
383            Slot {
384                k: Sk::Str,
385                req: false,
386                der: false,
387                swire: None,
388            },
389            Slot {
390                k: Sk::Vec,
391                req: true,
392                der: false,
393                swire: None,
394            },
395            Slot {
396                k: Sk::Ref,
397                req: true,
398                der: false,
399                swire: None,
400            },
401        ],
402        "ACTION_RESOURCE_RELATIONSHIP" => &[
403            Slot {
404                k: Sk::Str,
405                req: true,
406                der: false,
407                swire: None,
408            },
409            Slot {
410                k: Sk::Str,
411                req: false,
412                der: false,
413                swire: None,
414            },
415            Slot {
416                k: Sk::Ref,
417                req: true,
418                der: false,
419                swire: None,
420            },
421            Slot {
422                k: Sk::Ref,
423                req: true,
424                der: false,
425                swire: None,
426            },
427        ],
428        "ACTION_RESOURCE_REQUIREMENT" => &[
429            Slot {
430                k: Sk::Str,
431                req: true,
432                der: false,
433                swire: None,
434            },
435            Slot {
436                k: Sk::Str,
437                req: true,
438                der: false,
439                swire: None,
440            },
441            Slot {
442                k: Sk::Ref,
443                req: true,
444                der: false,
445                swire: None,
446            },
447            Slot {
448                k: Sk::Vec,
449                req: true,
450                der: false,
451                swire: None,
452            },
453        ],
454        "ACTION_RESOURCE_TYPE" => &[Slot {
455            k: Sk::Str,
456            req: true,
457            der: false,
458            swire: None,
459        }],
460        "ADDRESS" => &[
461            Slot {
462                k: Sk::Str,
463                req: false,
464                der: false,
465                swire: None,
466            },
467            Slot {
468                k: Sk::Str,
469                req: false,
470                der: false,
471                swire: None,
472            },
473            Slot {
474                k: Sk::Str,
475                req: false,
476                der: false,
477                swire: None,
478            },
479            Slot {
480                k: Sk::Str,
481                req: false,
482                der: false,
483                swire: None,
484            },
485            Slot {
486                k: Sk::Str,
487                req: false,
488                der: false,
489                swire: None,
490            },
491            Slot {
492                k: Sk::Str,
493                req: false,
494                der: false,
495                swire: None,
496            },
497            Slot {
498                k: Sk::Str,
499                req: false,
500                der: false,
501                swire: None,
502            },
503            Slot {
504                k: Sk::Str,
505                req: false,
506                der: false,
507                swire: None,
508            },
509            Slot {
510                k: Sk::Str,
511                req: false,
512                der: false,
513                swire: None,
514            },
515            Slot {
516                k: Sk::Str,
517                req: false,
518                der: false,
519                swire: None,
520            },
521            Slot {
522                k: Sk::Str,
523                req: false,
524                der: false,
525                swire: None,
526            },
527            Slot {
528                k: Sk::Str,
529                req: false,
530                der: false,
531                swire: None,
532            },
533        ],
534        "ADVANCED_BREP_SHAPE_REPRESENTATION" => &[
535            Slot {
536                k: Sk::Str,
537                req: true,
538                der: false,
539                swire: None,
540            },
541            Slot {
542                k: Sk::Vec,
543                req: true,
544                der: false,
545                swire: None,
546            },
547            Slot {
548                k: Sk::Ref,
549                req: true,
550                der: false,
551                swire: None,
552            },
553        ],
554        "ADVANCED_FACE" => &[
555            Slot {
556                k: Sk::Str,
557                req: true,
558                der: false,
559                swire: None,
560            },
561            Slot {
562                k: Sk::Vec,
563                req: true,
564                der: false,
565                swire: None,
566            },
567            Slot {
568                k: Sk::Ref,
569                req: true,
570                der: false,
571                swire: None,
572            },
573            Slot {
574                k: Sk::Bool,
575                req: true,
576                der: false,
577                swire: None,
578            },
579        ],
580        "ALL_AROUND_SHAPE_ASPECT" => &[
581            Slot {
582                k: Sk::Str,
583                req: true,
584                der: false,
585                swire: None,
586            },
587            Slot {
588                k: Sk::Str,
589                req: false,
590                der: false,
591                swire: None,
592            },
593            Slot {
594                k: Sk::Ref,
595                req: true,
596                der: false,
597                swire: None,
598            },
599            Slot {
600                k: Sk::Log,
601                req: true,
602                der: false,
603                swire: None,
604            },
605        ],
606        "ANGULAR_LOCATION" => &[
607            Slot {
608                k: Sk::Str,
609                req: true,
610                der: false,
611                swire: None,
612            },
613            Slot {
614                k: Sk::Str,
615                req: false,
616                der: false,
617                swire: None,
618            },
619            Slot {
620                k: Sk::Ref,
621                req: true,
622                der: false,
623                swire: None,
624            },
625            Slot {
626                k: Sk::Ref,
627                req: true,
628                der: false,
629                swire: None,
630            },
631            Slot {
632                k: Sk::Enum,
633                req: true,
634                der: false,
635                swire: None,
636            },
637        ],
638        "ANGULAR_SIZE" => &[
639            Slot {
640                k: Sk::Ref,
641                req: true,
642                der: false,
643                swire: None,
644            },
645            Slot {
646                k: Sk::Str,
647                req: true,
648                der: false,
649                swire: None,
650            },
651            Slot {
652                k: Sk::Enum,
653                req: true,
654                der: false,
655                swire: None,
656            },
657        ],
658        "ANGULARITY_TOLERANCE" => &[
659            Slot {
660                k: Sk::Str,
661                req: true,
662                der: false,
663                swire: None,
664            },
665            Slot {
666                k: Sk::Str,
667                req: false,
668                der: false,
669                swire: None,
670            },
671            Slot {
672                k: Sk::Ref,
673                req: false,
674                der: false,
675                swire: None,
676            },
677            Slot {
678                k: Sk::Ref,
679                req: true,
680                der: false,
681                swire: None,
682            },
683            Slot {
684                k: Sk::Vec,
685                req: true,
686                der: false,
687                swire: None,
688            },
689        ],
690        "ANNOTATION_CURVE_OCCURRENCE" => &[
691            Slot {
692                k: Sk::Str,
693                req: true,
694                der: false,
695                swire: None,
696            },
697            Slot {
698                k: Sk::Vec,
699                req: true,
700                der: false,
701                swire: None,
702            },
703            Slot {
704                k: Sk::Ref,
705                req: true,
706                der: false,
707                swire: None,
708            },
709        ],
710        "ANNOTATION_FILL_AREA_OCCURRENCE" => &[
711            Slot {
712                k: Sk::Str,
713                req: true,
714                der: false,
715                swire: None,
716            },
717            Slot {
718                k: Sk::Vec,
719                req: true,
720                der: false,
721                swire: None,
722            },
723            Slot {
724                k: Sk::Ref,
725                req: true,
726                der: false,
727                swire: None,
728            },
729            Slot {
730                k: Sk::Ref,
731                req: true,
732                der: false,
733                swire: None,
734            },
735        ],
736        "ANNOTATION_OCCURRENCE" => &[
737            Slot {
738                k: Sk::Str,
739                req: true,
740                der: false,
741                swire: None,
742            },
743            Slot {
744                k: Sk::Vec,
745                req: true,
746                der: false,
747                swire: None,
748            },
749            Slot {
750                k: Sk::Ref,
751                req: true,
752                der: false,
753                swire: None,
754            },
755        ],
756        "ANNOTATION_OCCURRENCE_ASSOCIATIVITY" => &[
757            Slot {
758                k: Sk::Str,
759                req: true,
760                der: false,
761                swire: None,
762            },
763            Slot {
764                k: Sk::Str,
765                req: true,
766                der: false,
767                swire: None,
768            },
769            Slot {
770                k: Sk::Ref,
771                req: true,
772                der: false,
773                swire: None,
774            },
775            Slot {
776                k: Sk::Ref,
777                req: true,
778                der: false,
779                swire: None,
780            },
781        ],
782        "ANNOTATION_OCCURRENCE_RELATIONSHIP" => &[
783            Slot {
784                k: Sk::Str,
785                req: true,
786                der: false,
787                swire: None,
788            },
789            Slot {
790                k: Sk::Str,
791                req: true,
792                der: false,
793                swire: None,
794            },
795            Slot {
796                k: Sk::Ref,
797                req: true,
798                der: false,
799                swire: None,
800            },
801            Slot {
802                k: Sk::Ref,
803                req: true,
804                der: false,
805                swire: None,
806            },
807        ],
808        "ANNOTATION_PLACEHOLDER_LEADER_LINE" => &[
809            Slot {
810                k: Sk::Str,
811                req: true,
812                der: false,
813                swire: None,
814            },
815            Slot {
816                k: Sk::Vec,
817                req: true,
818                der: false,
819                swire: None,
820            },
821        ],
822        "ANNOTATION_PLACEHOLDER_OCCURRENCE" => &[
823            Slot {
824                k: Sk::Str,
825                req: true,
826                der: false,
827                swire: None,
828            },
829            Slot {
830                k: Sk::Vec,
831                req: true,
832                der: false,
833                swire: None,
834            },
835            Slot {
836                k: Sk::Ref,
837                req: true,
838                der: false,
839                swire: None,
840            },
841            Slot {
842                k: Sk::Enum,
843                req: true,
844                der: false,
845                swire: None,
846            },
847            Slot {
848                k: Sk::Real,
849                req: true,
850                der: false,
851                swire: None,
852            },
853        ],
854        "ANNOTATION_PLACEHOLDER_OCCURRENCE_WITH_LEADER_LINE" => &[
855            Slot {
856                k: Sk::Str,
857                req: true,
858                der: false,
859                swire: None,
860            },
861            Slot {
862                k: Sk::Vec,
863                req: true,
864                der: false,
865                swire: None,
866            },
867            Slot {
868                k: Sk::Ref,
869                req: true,
870                der: false,
871                swire: None,
872            },
873            Slot {
874                k: Sk::Enum,
875                req: true,
876                der: false,
877                swire: None,
878            },
879            Slot {
880                k: Sk::Real,
881                req: true,
882                der: false,
883                swire: None,
884            },
885            Slot {
886                k: Sk::Vec,
887                req: true,
888                der: false,
889                swire: None,
890            },
891        ],
892        "ANNOTATION_PLANE" => &[
893            Slot {
894                k: Sk::Str,
895                req: true,
896                der: false,
897                swire: None,
898            },
899            Slot {
900                k: Sk::Vec,
901                req: true,
902                der: false,
903                swire: None,
904            },
905            Slot {
906                k: Sk::Ref,
907                req: true,
908                der: false,
909                swire: None,
910            },
911            Slot {
912                k: Sk::Vec,
913                req: false,
914                der: false,
915                swire: None,
916            },
917        ],
918        "ANNOTATION_SYMBOL" => &[
919            Slot {
920                k: Sk::Str,
921                req: true,
922                der: false,
923                swire: None,
924            },
925            Slot {
926                k: Sk::Ref,
927                req: true,
928                der: false,
929                swire: None,
930            },
931            Slot {
932                k: Sk::Ref,
933                req: true,
934                der: false,
935                swire: None,
936            },
937        ],
938        "ANNOTATION_SYMBOL_OCCURRENCE" => &[
939            Slot {
940                k: Sk::Str,
941                req: true,
942                der: false,
943                swire: None,
944            },
945            Slot {
946                k: Sk::Vec,
947                req: true,
948                der: false,
949                swire: None,
950            },
951            Slot {
952                k: Sk::Ref,
953                req: true,
954                der: false,
955                swire: None,
956            },
957        ],
958        "ANNOTATION_TEXT" => &[
959            Slot {
960                k: Sk::Str,
961                req: true,
962                der: false,
963                swire: None,
964            },
965            Slot {
966                k: Sk::Ref,
967                req: true,
968                der: false,
969                swire: None,
970            },
971            Slot {
972                k: Sk::Ref,
973                req: true,
974                der: false,
975                swire: None,
976            },
977        ],
978        "ANNOTATION_TEXT_CHARACTER" => &[
979            Slot {
980                k: Sk::Str,
981                req: true,
982                der: false,
983                swire: None,
984            },
985            Slot {
986                k: Sk::Ref,
987                req: true,
988                der: false,
989                swire: None,
990            },
991            Slot {
992                k: Sk::Ref,
993                req: true,
994                der: false,
995                swire: None,
996            },
997            Slot {
998                k: Sk::Str,
999                req: true,
1000                der: false,
1001                swire: None,
1002            },
1003        ],
1004        "ANNOTATION_TEXT_OCCURRENCE" => &[
1005            Slot {
1006                k: Sk::Str,
1007                req: true,
1008                der: false,
1009                swire: None,
1010            },
1011            Slot {
1012                k: Sk::Vec,
1013                req: true,
1014                der: false,
1015                swire: None,
1016            },
1017            Slot {
1018                k: Sk::Ref,
1019                req: true,
1020                der: false,
1021                swire: None,
1022            },
1023        ],
1024        "ANNOTATION_TO_ANNOTATION_LEADER_LINE" => &[
1025            Slot {
1026                k: Sk::Str,
1027                req: true,
1028                der: false,
1029                swire: None,
1030            },
1031            Slot {
1032                k: Sk::Vec,
1033                req: true,
1034                der: false,
1035                swire: None,
1036            },
1037        ],
1038        "ANNOTATION_TO_MODEL_LEADER_LINE" => &[
1039            Slot {
1040                k: Sk::Str,
1041                req: true,
1042                der: false,
1043                swire: None,
1044            },
1045            Slot {
1046                k: Sk::Vec,
1047                req: true,
1048                der: false,
1049                swire: None,
1050            },
1051        ],
1052        "APLL_POINT" => &[
1053            Slot {
1054                k: Sk::Str,
1055                req: true,
1056                der: false,
1057                swire: None,
1058            },
1059            Slot {
1060                k: Sk::Vec,
1061                req: true,
1062                der: false,
1063                swire: None,
1064            },
1065            Slot {
1066                k: Sk::Enum,
1067                req: true,
1068                der: false,
1069                swire: None,
1070            },
1071        ],
1072        "APLL_POINT_WITH_SURFACE" => &[
1073            Slot {
1074                k: Sk::Str,
1075                req: true,
1076                der: false,
1077                swire: None,
1078            },
1079            Slot {
1080                k: Sk::Vec,
1081                req: true,
1082                der: false,
1083                swire: None,
1084            },
1085            Slot {
1086                k: Sk::Enum,
1087                req: true,
1088                der: false,
1089                swire: None,
1090            },
1091            Slot {
1092                k: Sk::Ref,
1093                req: true,
1094                der: false,
1095                swire: None,
1096            },
1097        ],
1098        "APPLICATION_CONTEXT" => &[Slot {
1099            k: Sk::Str,
1100            req: true,
1101            der: false,
1102            swire: None,
1103        }],
1104        "APPLICATION_CONTEXT_ELEMENT" => &[
1105            Slot {
1106                k: Sk::Str,
1107                req: true,
1108                der: false,
1109                swire: None,
1110            },
1111            Slot {
1112                k: Sk::Ref,
1113                req: true,
1114                der: false,
1115                swire: None,
1116            },
1117        ],
1118        "APPLICATION_PROTOCOL_DEFINITION" => &[
1119            Slot {
1120                k: Sk::Str,
1121                req: true,
1122                der: false,
1123                swire: None,
1124            },
1125            Slot {
1126                k: Sk::Str,
1127                req: true,
1128                der: false,
1129                swire: None,
1130            },
1131            Slot {
1132                k: Sk::Int,
1133                req: true,
1134                der: false,
1135                swire: None,
1136            },
1137            Slot {
1138                k: Sk::Ref,
1139                req: true,
1140                der: false,
1141                swire: None,
1142            },
1143        ],
1144        "APPLIED_APPROVAL_ASSIGNMENT" => &[
1145            Slot {
1146                k: Sk::Ref,
1147                req: true,
1148                der: false,
1149                swire: None,
1150            },
1151            Slot {
1152                k: Sk::Vec,
1153                req: true,
1154                der: false,
1155                swire: None,
1156            },
1157        ],
1158        "APPLIED_DATE_AND_TIME_ASSIGNMENT" => &[
1159            Slot {
1160                k: Sk::Ref,
1161                req: true,
1162                der: false,
1163                swire: None,
1164            },
1165            Slot {
1166                k: Sk::Ref,
1167                req: true,
1168                der: false,
1169                swire: None,
1170            },
1171            Slot {
1172                k: Sk::Vec,
1173                req: true,
1174                der: false,
1175                swire: None,
1176            },
1177        ],
1178        "APPLIED_DOCUMENT_REFERENCE" => &[
1179            Slot {
1180                k: Sk::Ref,
1181                req: true,
1182                der: false,
1183                swire: None,
1184            },
1185            Slot {
1186                k: Sk::Str,
1187                req: true,
1188                der: false,
1189                swire: None,
1190            },
1191            Slot {
1192                k: Sk::Vec,
1193                req: true,
1194                der: false,
1195                swire: None,
1196            },
1197        ],
1198        "APPLIED_EXTERNAL_IDENTIFICATION_ASSIGNMENT" => &[
1199            Slot {
1200                k: Sk::Str,
1201                req: true,
1202                der: false,
1203                swire: None,
1204            },
1205            Slot {
1206                k: Sk::Ref,
1207                req: true,
1208                der: false,
1209                swire: None,
1210            },
1211            Slot {
1212                k: Sk::Ref,
1213                req: true,
1214                der: false,
1215                swire: None,
1216            },
1217            Slot {
1218                k: Sk::Vec,
1219                req: true,
1220                der: false,
1221                swire: None,
1222            },
1223        ],
1224        "APPLIED_GROUP_ASSIGNMENT" => &[
1225            Slot {
1226                k: Sk::Ref,
1227                req: true,
1228                der: false,
1229                swire: None,
1230            },
1231            Slot {
1232                k: Sk::Vec,
1233                req: true,
1234                der: false,
1235                swire: None,
1236            },
1237        ],
1238        "APPLIED_PERSON_AND_ORGANIZATION_ASSIGNMENT" => &[
1239            Slot {
1240                k: Sk::Ref,
1241                req: true,
1242                der: false,
1243                swire: None,
1244            },
1245            Slot {
1246                k: Sk::Ref,
1247                req: true,
1248                der: false,
1249                swire: None,
1250            },
1251            Slot {
1252                k: Sk::Vec,
1253                req: true,
1254                der: false,
1255                swire: None,
1256            },
1257        ],
1258        "APPLIED_PRESENTED_ITEM" => &[Slot {
1259            k: Sk::Vec,
1260            req: true,
1261            der: false,
1262            swire: None,
1263        }],
1264        "APPLIED_SECURITY_CLASSIFICATION_ASSIGNMENT" => &[
1265            Slot {
1266                k: Sk::Ref,
1267                req: true,
1268                der: false,
1269                swire: None,
1270            },
1271            Slot {
1272                k: Sk::Vec,
1273                req: true,
1274                der: false,
1275                swire: None,
1276            },
1277        ],
1278        "APPROVAL" => &[
1279            Slot {
1280                k: Sk::Ref,
1281                req: true,
1282                der: false,
1283                swire: None,
1284            },
1285            Slot {
1286                k: Sk::Str,
1287                req: true,
1288                der: false,
1289                swire: None,
1290            },
1291        ],
1292        "APPROVAL_ASSIGNMENT" => &[Slot {
1293            k: Sk::Ref,
1294            req: true,
1295            der: false,
1296            swire: None,
1297        }],
1298        "APPROVAL_DATE_TIME" => &[
1299            Slot {
1300                k: Sk::Ref,
1301                req: true,
1302                der: false,
1303                swire: None,
1304            },
1305            Slot {
1306                k: Sk::Ref,
1307                req: true,
1308                der: false,
1309                swire: None,
1310            },
1311        ],
1312        "APPROVAL_PERSON_ORGANIZATION" => &[
1313            Slot {
1314                k: Sk::Ref,
1315                req: true,
1316                der: false,
1317                swire: None,
1318            },
1319            Slot {
1320                k: Sk::Ref,
1321                req: true,
1322                der: false,
1323                swire: None,
1324            },
1325            Slot {
1326                k: Sk::Ref,
1327                req: true,
1328                der: false,
1329                swire: None,
1330            },
1331        ],
1332        "APPROVAL_ROLE" => &[Slot {
1333            k: Sk::Str,
1334            req: true,
1335            der: false,
1336            swire: None,
1337        }],
1338        "APPROVAL_STATUS" => &[Slot {
1339            k: Sk::Str,
1340            req: true,
1341            der: false,
1342            swire: None,
1343        }],
1344        "APPROXIMATION_TOLERANCE" => &[Slot {
1345            k: Sk::Ref,
1346            req: true,
1347            der: false,
1348            swire: None,
1349        }],
1350        "APPROXIMATION_TOLERANCE_DEVIATION" => &[
1351            Slot {
1352                k: Sk::Enum,
1353                req: true,
1354                der: false,
1355                swire: None,
1356            },
1357            Slot {
1358                k: Sk::Vec,
1359                req: true,
1360                der: false,
1361                swire: None,
1362            },
1363            Slot {
1364                k: Sk::Enum,
1365                req: true,
1366                der: false,
1367                swire: None,
1368            },
1369        ],
1370        "APPROXIMATION_TOLERANCE_PARAMETER" => &[Slot {
1371            k: Sk::Vec,
1372            req: true,
1373            der: false,
1374            swire: None,
1375        }],
1376        "AREA_IN_SET" => &[
1377            Slot {
1378                k: Sk::Ref,
1379                req: true,
1380                der: false,
1381                swire: None,
1382            },
1383            Slot {
1384                k: Sk::Ref,
1385                req: true,
1386                der: false,
1387                swire: None,
1388            },
1389        ],
1390        "AREA_UNIT" => &[Slot {
1391            k: Sk::Vec,
1392            req: true,
1393            der: false,
1394            swire: None,
1395        }],
1396        "ASCRIBABLE_STATE" => &[
1397            Slot {
1398                k: Sk::Str,
1399                req: true,
1400                der: false,
1401                swire: None,
1402            },
1403            Slot {
1404                k: Sk::Str,
1405                req: false,
1406                der: false,
1407                swire: None,
1408            },
1409            Slot {
1410                k: Sk::Ref,
1411                req: true,
1412                der: false,
1413                swire: None,
1414            },
1415            Slot {
1416                k: Sk::Ref,
1417                req: true,
1418                der: false,
1419                swire: None,
1420            },
1421        ],
1422        "ASCRIBABLE_STATE_RELATIONSHIP" => &[
1423            Slot {
1424                k: Sk::Str,
1425                req: true,
1426                der: false,
1427                swire: None,
1428            },
1429            Slot {
1430                k: Sk::Str,
1431                req: false,
1432                der: false,
1433                swire: None,
1434            },
1435            Slot {
1436                k: Sk::Ref,
1437                req: true,
1438                der: false,
1439                swire: None,
1440            },
1441            Slot {
1442                k: Sk::Ref,
1443                req: true,
1444                der: false,
1445                swire: None,
1446            },
1447        ],
1448        "ASSEMBLY_COMPONENT_USAGE" => &[
1449            Slot {
1450                k: Sk::Str,
1451                req: true,
1452                der: false,
1453                swire: None,
1454            },
1455            Slot {
1456                k: Sk::Str,
1457                req: true,
1458                der: false,
1459                swire: None,
1460            },
1461            Slot {
1462                k: Sk::Str,
1463                req: false,
1464                der: false,
1465                swire: None,
1466            },
1467            Slot {
1468                k: Sk::Ref,
1469                req: true,
1470                der: false,
1471                swire: None,
1472            },
1473            Slot {
1474                k: Sk::Ref,
1475                req: true,
1476                der: false,
1477                swire: None,
1478            },
1479            Slot {
1480                k: Sk::Str,
1481                req: false,
1482                der: false,
1483                swire: None,
1484            },
1485        ],
1486        "AUXILIARY_LEADER_LINE" => &[
1487            Slot {
1488                k: Sk::Str,
1489                req: true,
1490                der: false,
1491                swire: None,
1492            },
1493            Slot {
1494                k: Sk::Vec,
1495                req: true,
1496                der: false,
1497                swire: None,
1498            },
1499            Slot {
1500                k: Sk::Ref,
1501                req: true,
1502                der: false,
1503                swire: None,
1504            },
1505        ],
1506        "AXIS1_PLACEMENT" => &[
1507            Slot {
1508                k: Sk::Str,
1509                req: true,
1510                der: false,
1511                swire: None,
1512            },
1513            Slot {
1514                k: Sk::Ref,
1515                req: true,
1516                der: false,
1517                swire: None,
1518            },
1519            Slot {
1520                k: Sk::Ref,
1521                req: false,
1522                der: false,
1523                swire: None,
1524            },
1525        ],
1526        "AXIS2_PLACEMENT_2D" => &[
1527            Slot {
1528                k: Sk::Str,
1529                req: true,
1530                der: false,
1531                swire: None,
1532            },
1533            Slot {
1534                k: Sk::Ref,
1535                req: true,
1536                der: false,
1537                swire: None,
1538            },
1539            Slot {
1540                k: Sk::Ref,
1541                req: false,
1542                der: false,
1543                swire: None,
1544            },
1545        ],
1546        "AXIS2_PLACEMENT_3D" => &[
1547            Slot {
1548                k: Sk::Str,
1549                req: true,
1550                der: false,
1551                swire: None,
1552            },
1553            Slot {
1554                k: Sk::Ref,
1555                req: true,
1556                der: false,
1557                swire: None,
1558            },
1559            Slot {
1560                k: Sk::Ref,
1561                req: false,
1562                der: false,
1563                swire: None,
1564            },
1565            Slot {
1566                k: Sk::Ref,
1567                req: false,
1568                der: false,
1569                swire: None,
1570            },
1571        ],
1572        "B_SPLINE_CURVE" => &[
1573            Slot {
1574                k: Sk::Str,
1575                req: true,
1576                der: false,
1577                swire: None,
1578            },
1579            Slot {
1580                k: Sk::Int,
1581                req: true,
1582                der: false,
1583                swire: None,
1584            },
1585            Slot {
1586                k: Sk::Vec,
1587                req: true,
1588                der: false,
1589                swire: None,
1590            },
1591            Slot {
1592                k: Sk::Enum,
1593                req: true,
1594                der: false,
1595                swire: None,
1596            },
1597            Slot {
1598                k: Sk::Log,
1599                req: true,
1600                der: false,
1601                swire: None,
1602            },
1603            Slot {
1604                k: Sk::Log,
1605                req: true,
1606                der: false,
1607                swire: None,
1608            },
1609        ],
1610        "B_SPLINE_CURVE_WITH_KNOTS" => &[
1611            Slot {
1612                k: Sk::Str,
1613                req: true,
1614                der: false,
1615                swire: None,
1616            },
1617            Slot {
1618                k: Sk::Int,
1619                req: true,
1620                der: false,
1621                swire: None,
1622            },
1623            Slot {
1624                k: Sk::Vec,
1625                req: true,
1626                der: false,
1627                swire: None,
1628            },
1629            Slot {
1630                k: Sk::Enum,
1631                req: true,
1632                der: false,
1633                swire: None,
1634            },
1635            Slot {
1636                k: Sk::Log,
1637                req: true,
1638                der: false,
1639                swire: None,
1640            },
1641            Slot {
1642                k: Sk::Log,
1643                req: true,
1644                der: false,
1645                swire: None,
1646            },
1647            Slot {
1648                k: Sk::Vec,
1649                req: true,
1650                der: false,
1651                swire: None,
1652            },
1653            Slot {
1654                k: Sk::Vec,
1655                req: true,
1656                der: false,
1657                swire: None,
1658            },
1659            Slot {
1660                k: Sk::Enum,
1661                req: true,
1662                der: false,
1663                swire: None,
1664            },
1665        ],
1666        "B_SPLINE_SURFACE" => &[
1667            Slot {
1668                k: Sk::Str,
1669                req: true,
1670                der: false,
1671                swire: None,
1672            },
1673            Slot {
1674                k: Sk::Int,
1675                req: true,
1676                der: false,
1677                swire: None,
1678            },
1679            Slot {
1680                k: Sk::Int,
1681                req: true,
1682                der: false,
1683                swire: None,
1684            },
1685            Slot {
1686                k: Sk::Vec,
1687                req: true,
1688                der: false,
1689                swire: None,
1690            },
1691            Slot {
1692                k: Sk::Enum,
1693                req: true,
1694                der: false,
1695                swire: None,
1696            },
1697            Slot {
1698                k: Sk::Log,
1699                req: true,
1700                der: false,
1701                swire: None,
1702            },
1703            Slot {
1704                k: Sk::Log,
1705                req: true,
1706                der: false,
1707                swire: None,
1708            },
1709            Slot {
1710                k: Sk::Log,
1711                req: true,
1712                der: false,
1713                swire: None,
1714            },
1715        ],
1716        "B_SPLINE_SURFACE_WITH_KNOTS" => &[
1717            Slot {
1718                k: Sk::Str,
1719                req: true,
1720                der: false,
1721                swire: None,
1722            },
1723            Slot {
1724                k: Sk::Int,
1725                req: true,
1726                der: false,
1727                swire: None,
1728            },
1729            Slot {
1730                k: Sk::Int,
1731                req: true,
1732                der: false,
1733                swire: None,
1734            },
1735            Slot {
1736                k: Sk::Vec,
1737                req: true,
1738                der: false,
1739                swire: None,
1740            },
1741            Slot {
1742                k: Sk::Enum,
1743                req: true,
1744                der: false,
1745                swire: None,
1746            },
1747            Slot {
1748                k: Sk::Log,
1749                req: true,
1750                der: false,
1751                swire: None,
1752            },
1753            Slot {
1754                k: Sk::Log,
1755                req: true,
1756                der: false,
1757                swire: None,
1758            },
1759            Slot {
1760                k: Sk::Log,
1761                req: true,
1762                der: false,
1763                swire: None,
1764            },
1765            Slot {
1766                k: Sk::Vec,
1767                req: true,
1768                der: false,
1769                swire: None,
1770            },
1771            Slot {
1772                k: Sk::Vec,
1773                req: true,
1774                der: false,
1775                swire: None,
1776            },
1777            Slot {
1778                k: Sk::Vec,
1779                req: true,
1780                der: false,
1781                swire: None,
1782            },
1783            Slot {
1784                k: Sk::Vec,
1785                req: true,
1786                der: false,
1787                swire: None,
1788            },
1789            Slot {
1790                k: Sk::Enum,
1791                req: true,
1792                der: false,
1793                swire: None,
1794            },
1795        ],
1796        "BEZIER_CURVE" => &[
1797            Slot {
1798                k: Sk::Str,
1799                req: true,
1800                der: false,
1801                swire: None,
1802            },
1803            Slot {
1804                k: Sk::Int,
1805                req: true,
1806                der: false,
1807                swire: None,
1808            },
1809            Slot {
1810                k: Sk::Vec,
1811                req: true,
1812                der: false,
1813                swire: None,
1814            },
1815            Slot {
1816                k: Sk::Enum,
1817                req: true,
1818                der: false,
1819                swire: None,
1820            },
1821            Slot {
1822                k: Sk::Log,
1823                req: true,
1824                der: false,
1825                swire: None,
1826            },
1827            Slot {
1828                k: Sk::Log,
1829                req: true,
1830                der: false,
1831                swire: None,
1832            },
1833        ],
1834        "BEZIER_SURFACE" => &[
1835            Slot {
1836                k: Sk::Str,
1837                req: true,
1838                der: false,
1839                swire: None,
1840            },
1841            Slot {
1842                k: Sk::Int,
1843                req: true,
1844                der: false,
1845                swire: None,
1846            },
1847            Slot {
1848                k: Sk::Int,
1849                req: true,
1850                der: false,
1851                swire: None,
1852            },
1853            Slot {
1854                k: Sk::Vec,
1855                req: true,
1856                der: false,
1857                swire: None,
1858            },
1859            Slot {
1860                k: Sk::Enum,
1861                req: true,
1862                der: false,
1863                swire: None,
1864            },
1865            Slot {
1866                k: Sk::Log,
1867                req: true,
1868                der: false,
1869                swire: None,
1870            },
1871            Slot {
1872                k: Sk::Log,
1873                req: true,
1874                der: false,
1875                swire: None,
1876            },
1877            Slot {
1878                k: Sk::Log,
1879                req: true,
1880                der: false,
1881                swire: None,
1882            },
1883        ],
1884        "BOUNDED_CURVE" => &[Slot {
1885            k: Sk::Str,
1886            req: true,
1887            der: false,
1888            swire: None,
1889        }],
1890        "BOUNDED_PCURVE" => &[
1891            Slot {
1892                k: Sk::Str,
1893                req: true,
1894                der: false,
1895                swire: None,
1896            },
1897            Slot {
1898                k: Sk::Ref,
1899                req: true,
1900                der: false,
1901                swire: None,
1902            },
1903            Slot {
1904                k: Sk::Ref,
1905                req: true,
1906                der: false,
1907                swire: None,
1908            },
1909        ],
1910        "BOUNDED_SURFACE" => &[Slot {
1911            k: Sk::Str,
1912            req: true,
1913            der: false,
1914            swire: None,
1915        }],
1916        "BOUNDED_SURFACE_CURVE" => &[
1917            Slot {
1918                k: Sk::Str,
1919                req: true,
1920                der: false,
1921                swire: None,
1922            },
1923            Slot {
1924                k: Sk::Ref,
1925                req: true,
1926                der: false,
1927                swire: None,
1928            },
1929            Slot {
1930                k: Sk::Vec,
1931                req: true,
1932                der: false,
1933                swire: None,
1934            },
1935            Slot {
1936                k: Sk::Enum,
1937                req: true,
1938                der: false,
1939                swire: None,
1940            },
1941        ],
1942        "BREP_WITH_VOIDS" => &[
1943            Slot {
1944                k: Sk::Str,
1945                req: true,
1946                der: false,
1947                swire: None,
1948            },
1949            Slot {
1950                k: Sk::Ref,
1951                req: true,
1952                der: false,
1953                swire: None,
1954            },
1955            Slot {
1956                k: Sk::Vec,
1957                req: true,
1958                der: false,
1959                swire: None,
1960            },
1961        ],
1962        "CALENDAR_DATE" => &[
1963            Slot {
1964                k: Sk::Int,
1965                req: true,
1966                der: false,
1967                swire: None,
1968            },
1969            Slot {
1970                k: Sk::Int,
1971                req: true,
1972                der: false,
1973                swire: None,
1974            },
1975            Slot {
1976                k: Sk::Int,
1977                req: true,
1978                der: false,
1979                swire: None,
1980            },
1981        ],
1982        "CAMERA_IMAGE" => &[
1983            Slot {
1984                k: Sk::Str,
1985                req: true,
1986                der: false,
1987                swire: None,
1988            },
1989            Slot {
1990                k: Sk::Ref,
1991                req: true,
1992                der: false,
1993                swire: None,
1994            },
1995            Slot {
1996                k: Sk::Ref,
1997                req: true,
1998                der: false,
1999                swire: None,
2000            },
2001        ],
2002        "CAMERA_IMAGE_3D_WITH_SCALE" => &[
2003            Slot {
2004                k: Sk::Str,
2005                req: true,
2006                der: false,
2007                swire: None,
2008            },
2009            Slot {
2010                k: Sk::Ref,
2011                req: true,
2012                der: false,
2013                swire: None,
2014            },
2015            Slot {
2016                k: Sk::Ref,
2017                req: true,
2018                der: false,
2019                swire: None,
2020            },
2021        ],
2022        "CAMERA_MODEL" => &[Slot {
2023            k: Sk::Str,
2024            req: true,
2025            der: false,
2026            swire: None,
2027        }],
2028        "CAMERA_MODEL_D3" => &[
2029            Slot {
2030                k: Sk::Str,
2031                req: true,
2032                der: false,
2033                swire: None,
2034            },
2035            Slot {
2036                k: Sk::Ref,
2037                req: true,
2038                der: false,
2039                swire: None,
2040            },
2041            Slot {
2042                k: Sk::Ref,
2043                req: true,
2044                der: false,
2045                swire: None,
2046            },
2047        ],
2048        "CAMERA_MODEL_D3_MULTI_CLIPPING" => &[
2049            Slot {
2050                k: Sk::Str,
2051                req: true,
2052                der: false,
2053                swire: None,
2054            },
2055            Slot {
2056                k: Sk::Ref,
2057                req: true,
2058                der: false,
2059                swire: None,
2060            },
2061            Slot {
2062                k: Sk::Ref,
2063                req: true,
2064                der: false,
2065                swire: None,
2066            },
2067            Slot {
2068                k: Sk::Vec,
2069                req: true,
2070                der: false,
2071                swire: None,
2072            },
2073        ],
2074        "CAMERA_MODEL_D3_WITH_HLHSR" => &[
2075            Slot {
2076                k: Sk::Str,
2077                req: true,
2078                der: false,
2079                swire: None,
2080            },
2081            Slot {
2082                k: Sk::Ref,
2083                req: true,
2084                der: false,
2085                swire: None,
2086            },
2087            Slot {
2088                k: Sk::Ref,
2089                req: true,
2090                der: false,
2091                swire: None,
2092            },
2093            Slot {
2094                k: Sk::Bool,
2095                req: true,
2096                der: false,
2097                swire: None,
2098            },
2099        ],
2100        "CAMERA_USAGE" => &[
2101            Slot {
2102                k: Sk::Ref,
2103                req: true,
2104                der: false,
2105                swire: None,
2106            },
2107            Slot {
2108                k: Sk::Ref,
2109                req: true,
2110                der: false,
2111                swire: None,
2112            },
2113        ],
2114        "CARTESIAN_POINT" => &[
2115            Slot {
2116                k: Sk::Str,
2117                req: true,
2118                der: false,
2119                swire: None,
2120            },
2121            Slot {
2122                k: Sk::Vec,
2123                req: true,
2124                der: false,
2125                swire: None,
2126            },
2127        ],
2128        "CC_DESIGN_APPROVAL" => &[
2129            Slot {
2130                k: Sk::Ref,
2131                req: true,
2132                der: false,
2133                swire: None,
2134            },
2135            Slot {
2136                k: Sk::Vec,
2137                req: true,
2138                der: false,
2139                swire: None,
2140            },
2141        ],
2142        "CC_DESIGN_DATE_AND_TIME_ASSIGNMENT" => &[
2143            Slot {
2144                k: Sk::Ref,
2145                req: true,
2146                der: false,
2147                swire: None,
2148            },
2149            Slot {
2150                k: Sk::Ref,
2151                req: true,
2152                der: false,
2153                swire: None,
2154            },
2155            Slot {
2156                k: Sk::Vec,
2157                req: true,
2158                der: false,
2159                swire: None,
2160            },
2161        ],
2162        "CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT" => &[
2163            Slot {
2164                k: Sk::Ref,
2165                req: true,
2166                der: false,
2167                swire: None,
2168            },
2169            Slot {
2170                k: Sk::Ref,
2171                req: true,
2172                der: false,
2173                swire: None,
2174            },
2175            Slot {
2176                k: Sk::Vec,
2177                req: true,
2178                der: false,
2179                swire: None,
2180            },
2181        ],
2182        "CC_DESIGN_SECURITY_CLASSIFICATION" => &[
2183            Slot {
2184                k: Sk::Ref,
2185                req: true,
2186                der: false,
2187                swire: None,
2188            },
2189            Slot {
2190                k: Sk::Vec,
2191                req: true,
2192                der: false,
2193                swire: None,
2194            },
2195        ],
2196        "CENTRE_OF_SYMMETRY" => &[
2197            Slot {
2198                k: Sk::Str,
2199                req: true,
2200                der: false,
2201                swire: None,
2202            },
2203            Slot {
2204                k: Sk::Str,
2205                req: false,
2206                der: false,
2207                swire: None,
2208            },
2209            Slot {
2210                k: Sk::Ref,
2211                req: true,
2212                der: false,
2213                swire: None,
2214            },
2215            Slot {
2216                k: Sk::Log,
2217                req: true,
2218                der: false,
2219                swire: None,
2220            },
2221        ],
2222        "CERTIFICATION" => &[
2223            Slot {
2224                k: Sk::Str,
2225                req: true,
2226                der: false,
2227                swire: None,
2228            },
2229            Slot {
2230                k: Sk::Str,
2231                req: true,
2232                der: false,
2233                swire: None,
2234            },
2235            Slot {
2236                k: Sk::Ref,
2237                req: true,
2238                der: false,
2239                swire: None,
2240            },
2241        ],
2242        "CERTIFICATION_TYPE" => &[Slot {
2243            k: Sk::Str,
2244            req: true,
2245            der: false,
2246            swire: None,
2247        }],
2248        "CHANGE" => &[
2249            Slot {
2250                k: Sk::Ref,
2251                req: true,
2252                der: false,
2253                swire: None,
2254            },
2255            Slot {
2256                k: Sk::Vec,
2257                req: true,
2258                der: false,
2259                swire: None,
2260            },
2261        ],
2262        "CHANGE_REQUEST" => &[
2263            Slot {
2264                k: Sk::Ref,
2265                req: true,
2266                der: false,
2267                swire: None,
2268            },
2269            Slot {
2270                k: Sk::Vec,
2271                req: true,
2272                der: false,
2273                swire: None,
2274            },
2275        ],
2276        "CHARACTER_GLYPH_STYLE_OUTLINE" => &[Slot {
2277            k: Sk::Ref,
2278            req: true,
2279            der: false,
2280            swire: None,
2281        }],
2282        "CHARACTER_GLYPH_STYLE_STROKE" => &[Slot {
2283            k: Sk::Ref,
2284            req: true,
2285            der: false,
2286            swire: None,
2287        }],
2288        "CHARACTERIZED_ITEM_WITHIN_REPRESENTATION" => &[
2289            Slot {
2290                k: Sk::Str,
2291                req: true,
2292                der: false,
2293                swire: None,
2294            },
2295            Slot {
2296                k: Sk::Str,
2297                req: false,
2298                der: false,
2299                swire: None,
2300            },
2301            Slot {
2302                k: Sk::Ref,
2303                req: true,
2304                der: false,
2305                swire: None,
2306            },
2307            Slot {
2308                k: Sk::Ref,
2309                req: true,
2310                der: false,
2311                swire: None,
2312            },
2313        ],
2314        "CHARACTERIZED_OBJECT" => &[
2315            Slot {
2316                k: Sk::Str,
2317                req: true,
2318                der: false,
2319                swire: None,
2320            },
2321            Slot {
2322                k: Sk::Str,
2323                req: false,
2324                der: false,
2325                swire: None,
2326            },
2327        ],
2328        "CHARACTERIZED_REPRESENTATION" => &[
2329            Slot {
2330                k: Sk::Str,
2331                req: true,
2332                der: true,
2333                swire: None,
2334            },
2335            Slot {
2336                k: Sk::Vec,
2337                req: true,
2338                der: false,
2339                swire: None,
2340            },
2341            Slot {
2342                k: Sk::Ref,
2343                req: true,
2344                der: false,
2345                swire: None,
2346            },
2347            Slot {
2348                k: Sk::Str,
2349                req: true,
2350                der: true,
2351                swire: None,
2352            },
2353            Slot {
2354                k: Sk::Str,
2355                req: false,
2356                der: true,
2357                swire: None,
2358            },
2359        ],
2360        "CIRCLE" => &[
2361            Slot {
2362                k: Sk::Str,
2363                req: true,
2364                der: false,
2365                swire: None,
2366            },
2367            Slot {
2368                k: Sk::Ref,
2369                req: true,
2370                der: false,
2371                swire: None,
2372            },
2373            Slot {
2374                k: Sk::Real,
2375                req: true,
2376                der: false,
2377                swire: None,
2378            },
2379        ],
2380        "CIRCULAR_RUNOUT_TOLERANCE" => &[
2381            Slot {
2382                k: Sk::Str,
2383                req: true,
2384                der: false,
2385                swire: None,
2386            },
2387            Slot {
2388                k: Sk::Str,
2389                req: false,
2390                der: false,
2391                swire: None,
2392            },
2393            Slot {
2394                k: Sk::Ref,
2395                req: false,
2396                der: false,
2397                swire: None,
2398            },
2399            Slot {
2400                k: Sk::Ref,
2401                req: true,
2402                der: false,
2403                swire: None,
2404            },
2405            Slot {
2406                k: Sk::Vec,
2407                req: true,
2408                der: false,
2409                swire: None,
2410            },
2411        ],
2412        "CLOSED_SHELL" => &[
2413            Slot {
2414                k: Sk::Str,
2415                req: true,
2416                der: false,
2417                swire: None,
2418            },
2419            Slot {
2420                k: Sk::Vec,
2421                req: true,
2422                der: false,
2423                swire: None,
2424            },
2425        ],
2426        "COAXIALITY_TOLERANCE" => &[
2427            Slot {
2428                k: Sk::Str,
2429                req: true,
2430                der: false,
2431                swire: None,
2432            },
2433            Slot {
2434                k: Sk::Str,
2435                req: false,
2436                der: false,
2437                swire: None,
2438            },
2439            Slot {
2440                k: Sk::Ref,
2441                req: false,
2442                der: false,
2443                swire: None,
2444            },
2445            Slot {
2446                k: Sk::Ref,
2447                req: true,
2448                der: false,
2449                swire: None,
2450            },
2451            Slot {
2452                k: Sk::Vec,
2453                req: true,
2454                der: false,
2455                swire: None,
2456            },
2457        ],
2458        "COLOUR" => &[],
2459        "COLOUR_RGB" => &[
2460            Slot {
2461                k: Sk::Str,
2462                req: true,
2463                der: false,
2464                swire: None,
2465            },
2466            Slot {
2467                k: Sk::Real,
2468                req: true,
2469                der: false,
2470                swire: None,
2471            },
2472            Slot {
2473                k: Sk::Real,
2474                req: true,
2475                der: false,
2476                swire: None,
2477            },
2478            Slot {
2479                k: Sk::Real,
2480                req: true,
2481                der: false,
2482                swire: None,
2483            },
2484        ],
2485        "COLOUR_SPECIFICATION" => &[Slot {
2486            k: Sk::Str,
2487            req: true,
2488            der: false,
2489            swire: None,
2490        }],
2491        "COMMON_DATUM" => &[
2492            Slot {
2493                k: Sk::Str,
2494                req: true,
2495                der: false,
2496                swire: None,
2497            },
2498            Slot {
2499                k: Sk::Str,
2500                req: false,
2501                der: false,
2502                swire: None,
2503            },
2504            Slot {
2505                k: Sk::Ref,
2506                req: true,
2507                der: false,
2508                swire: None,
2509            },
2510            Slot {
2511                k: Sk::Log,
2512                req: true,
2513                der: false,
2514                swire: None,
2515            },
2516            Slot {
2517                k: Sk::Str,
2518                req: true,
2519                der: false,
2520                swire: None,
2521            },
2522        ],
2523        "COMPLEX_TRIANGULATED_FACE" => &[
2524            Slot {
2525                k: Sk::Str,
2526                req: true,
2527                der: false,
2528                swire: None,
2529            },
2530            Slot {
2531                k: Sk::Ref,
2532                req: true,
2533                der: false,
2534                swire: None,
2535            },
2536            Slot {
2537                k: Sk::Int,
2538                req: true,
2539                der: false,
2540                swire: None,
2541            },
2542            Slot {
2543                k: Sk::Vec,
2544                req: true,
2545                der: false,
2546                swire: None,
2547            },
2548            Slot {
2549                k: Sk::Ref,
2550                req: false,
2551                der: false,
2552                swire: None,
2553            },
2554            Slot {
2555                k: Sk::Vec,
2556                req: true,
2557                der: false,
2558                swire: None,
2559            },
2560            Slot {
2561                k: Sk::Vec,
2562                req: true,
2563                der: false,
2564                swire: None,
2565            },
2566            Slot {
2567                k: Sk::Vec,
2568                req: true,
2569                der: false,
2570                swire: None,
2571            },
2572        ],
2573        "COMPLEX_TRIANGULATED_SURFACE_SET" => &[
2574            Slot {
2575                k: Sk::Str,
2576                req: true,
2577                der: false,
2578                swire: None,
2579            },
2580            Slot {
2581                k: Sk::Ref,
2582                req: true,
2583                der: false,
2584                swire: None,
2585            },
2586            Slot {
2587                k: Sk::Int,
2588                req: true,
2589                der: false,
2590                swire: None,
2591            },
2592            Slot {
2593                k: Sk::Vec,
2594                req: true,
2595                der: false,
2596                swire: None,
2597            },
2598            Slot {
2599                k: Sk::Vec,
2600                req: true,
2601                der: false,
2602                swire: None,
2603            },
2604            Slot {
2605                k: Sk::Vec,
2606                req: true,
2607                der: false,
2608                swire: None,
2609            },
2610            Slot {
2611                k: Sk::Vec,
2612                req: true,
2613                der: false,
2614                swire: None,
2615            },
2616        ],
2617        "COMPOSITE_CURVE" => &[
2618            Slot {
2619                k: Sk::Str,
2620                req: true,
2621                der: false,
2622                swire: None,
2623            },
2624            Slot {
2625                k: Sk::Vec,
2626                req: true,
2627                der: false,
2628                swire: None,
2629            },
2630            Slot {
2631                k: Sk::Log,
2632                req: true,
2633                der: false,
2634                swire: None,
2635            },
2636        ],
2637        "COMPOSITE_CURVE_SEGMENT" => &[
2638            Slot {
2639                k: Sk::Enum,
2640                req: true,
2641                der: false,
2642                swire: None,
2643            },
2644            Slot {
2645                k: Sk::Bool,
2646                req: true,
2647                der: false,
2648                swire: None,
2649            },
2650            Slot {
2651                k: Sk::Ref,
2652                req: true,
2653                der: false,
2654                swire: None,
2655            },
2656        ],
2657        "COMPOSITE_GROUP_SHAPE_ASPECT" => &[
2658            Slot {
2659                k: Sk::Str,
2660                req: true,
2661                der: false,
2662                swire: None,
2663            },
2664            Slot {
2665                k: Sk::Str,
2666                req: false,
2667                der: false,
2668                swire: None,
2669            },
2670            Slot {
2671                k: Sk::Ref,
2672                req: true,
2673                der: false,
2674                swire: None,
2675            },
2676            Slot {
2677                k: Sk::Log,
2678                req: true,
2679                der: false,
2680                swire: None,
2681            },
2682        ],
2683        "COMPOSITE_SHAPE_ASPECT" => &[
2684            Slot {
2685                k: Sk::Str,
2686                req: true,
2687                der: false,
2688                swire: None,
2689            },
2690            Slot {
2691                k: Sk::Str,
2692                req: false,
2693                der: false,
2694                swire: None,
2695            },
2696            Slot {
2697                k: Sk::Ref,
2698                req: true,
2699                der: false,
2700                swire: None,
2701            },
2702            Slot {
2703                k: Sk::Log,
2704                req: true,
2705                der: false,
2706                swire: None,
2707            },
2708        ],
2709        "COMPOSITE_TEXT" => &[
2710            Slot {
2711                k: Sk::Str,
2712                req: true,
2713                der: false,
2714                swire: None,
2715            },
2716            Slot {
2717                k: Sk::Vec,
2718                req: true,
2719                der: false,
2720                swire: None,
2721            },
2722        ],
2723        "COMPOUND_REPRESENTATION_ITEM" => &[
2724            Slot {
2725                k: Sk::Str,
2726                req: true,
2727                der: false,
2728                swire: None,
2729            },
2730            Slot {
2731                k: Sk::Ref,
2732                req: true,
2733                der: false,
2734                swire: None,
2735            },
2736        ],
2737        "CONCENTRICITY_TOLERANCE" => &[
2738            Slot {
2739                k: Sk::Str,
2740                req: true,
2741                der: false,
2742                swire: None,
2743            },
2744            Slot {
2745                k: Sk::Str,
2746                req: false,
2747                der: false,
2748                swire: None,
2749            },
2750            Slot {
2751                k: Sk::Ref,
2752                req: false,
2753                der: false,
2754                swire: None,
2755            },
2756            Slot {
2757                k: Sk::Ref,
2758                req: true,
2759                der: false,
2760                swire: None,
2761            },
2762            Slot {
2763                k: Sk::Vec,
2764                req: true,
2765                der: false,
2766                swire: None,
2767            },
2768        ],
2769        "CONFIGURATION_DESIGN" => &[
2770            Slot {
2771                k: Sk::Ref,
2772                req: true,
2773                der: false,
2774                swire: None,
2775            },
2776            Slot {
2777                k: Sk::Ref,
2778                req: true,
2779                der: false,
2780                swire: None,
2781            },
2782        ],
2783        "CONFIGURATION_EFFECTIVITY" => &[
2784            Slot {
2785                k: Sk::Str,
2786                req: true,
2787                der: false,
2788                swire: None,
2789            },
2790            Slot {
2791                k: Sk::Ref,
2792                req: true,
2793                der: false,
2794                swire: None,
2795            },
2796            Slot {
2797                k: Sk::Ref,
2798                req: true,
2799                der: false,
2800                swire: None,
2801            },
2802        ],
2803        "CONFIGURATION_ITEM" => &[
2804            Slot {
2805                k: Sk::Str,
2806                req: true,
2807                der: false,
2808                swire: None,
2809            },
2810            Slot {
2811                k: Sk::Str,
2812                req: true,
2813                der: false,
2814                swire: None,
2815            },
2816            Slot {
2817                k: Sk::Str,
2818                req: false,
2819                der: false,
2820                swire: None,
2821            },
2822            Slot {
2823                k: Sk::Ref,
2824                req: true,
2825                der: false,
2826                swire: None,
2827            },
2828            Slot {
2829                k: Sk::Str,
2830                req: false,
2831                der: false,
2832                swire: None,
2833            },
2834        ],
2835        "CONIC" => &[
2836            Slot {
2837                k: Sk::Str,
2838                req: true,
2839                der: false,
2840                swire: None,
2841            },
2842            Slot {
2843                k: Sk::Ref,
2844                req: true,
2845                der: false,
2846                swire: None,
2847            },
2848        ],
2849        "CONICAL_SURFACE" => &[
2850            Slot {
2851                k: Sk::Str,
2852                req: true,
2853                der: false,
2854                swire: None,
2855            },
2856            Slot {
2857                k: Sk::Ref,
2858                req: true,
2859                der: false,
2860                swire: None,
2861            },
2862            Slot {
2863                k: Sk::Real,
2864                req: true,
2865                der: false,
2866                swire: None,
2867            },
2868            Slot {
2869                k: Sk::Real,
2870                req: true,
2871                der: false,
2872                swire: None,
2873            },
2874        ],
2875        "CONNECTED_FACE_SET" => &[
2876            Slot {
2877                k: Sk::Str,
2878                req: true,
2879                der: false,
2880                swire: None,
2881            },
2882            Slot {
2883                k: Sk::Vec,
2884                req: true,
2885                der: false,
2886                swire: None,
2887            },
2888        ],
2889        "CONSTRUCTIVE_GEOMETRY_REPRESENTATION" => &[
2890            Slot {
2891                k: Sk::Str,
2892                req: true,
2893                der: false,
2894                swire: None,
2895            },
2896            Slot {
2897                k: Sk::Vec,
2898                req: true,
2899                der: false,
2900                swire: None,
2901            },
2902            Slot {
2903                k: Sk::Ref,
2904                req: true,
2905                der: false,
2906                swire: None,
2907            },
2908        ],
2909        "CONSTRUCTIVE_GEOMETRY_REPRESENTATION_RELATIONSHIP" => &[
2910            Slot {
2911                k: Sk::Str,
2912                req: true,
2913                der: false,
2914                swire: None,
2915            },
2916            Slot {
2917                k: Sk::Str,
2918                req: false,
2919                der: false,
2920                swire: None,
2921            },
2922            Slot {
2923                k: Sk::Ref,
2924                req: true,
2925                der: false,
2926                swire: None,
2927            },
2928            Slot {
2929                k: Sk::Ref,
2930                req: true,
2931                der: false,
2932                swire: None,
2933            },
2934        ],
2935        "CONTEXT_DEPENDENT_OVER_RIDING_STYLED_ITEM" => &[
2936            Slot {
2937                k: Sk::Str,
2938                req: true,
2939                der: false,
2940                swire: None,
2941            },
2942            Slot {
2943                k: Sk::Vec,
2944                req: true,
2945                der: false,
2946                swire: None,
2947            },
2948            Slot {
2949                k: Sk::Ref,
2950                req: true,
2951                der: false,
2952                swire: None,
2953            },
2954            Slot {
2955                k: Sk::Ref,
2956                req: true,
2957                der: false,
2958                swire: None,
2959            },
2960            Slot {
2961                k: Sk::Vec,
2962                req: true,
2963                der: false,
2964                swire: None,
2965            },
2966        ],
2967        "CONTEXT_DEPENDENT_SHAPE_REPRESENTATION" => &[
2968            Slot {
2969                k: Sk::Ref,
2970                req: true,
2971                der: false,
2972                swire: None,
2973            },
2974            Slot {
2975                k: Sk::Ref,
2976                req: true,
2977                der: false,
2978                swire: None,
2979            },
2980        ],
2981        "CONTEXT_DEPENDENT_UNIT" => &[
2982            Slot {
2983                k: Sk::Ref,
2984                req: true,
2985                der: false,
2986                swire: None,
2987            },
2988            Slot {
2989                k: Sk::Str,
2990                req: true,
2991                der: false,
2992                swire: None,
2993            },
2994        ],
2995        "CONTINUOUS_SHAPE_ASPECT" => &[
2996            Slot {
2997                k: Sk::Str,
2998                req: true,
2999                der: false,
3000                swire: None,
3001            },
3002            Slot {
3003                k: Sk::Str,
3004                req: false,
3005                der: false,
3006                swire: None,
3007            },
3008            Slot {
3009                k: Sk::Ref,
3010                req: true,
3011                der: false,
3012                swire: None,
3013            },
3014            Slot {
3015                k: Sk::Log,
3016                req: true,
3017                der: false,
3018                swire: None,
3019            },
3020        ],
3021        "CONTRACT" => &[
3022            Slot {
3023                k: Sk::Str,
3024                req: true,
3025                der: false,
3026                swire: None,
3027            },
3028            Slot {
3029                k: Sk::Str,
3030                req: true,
3031                der: false,
3032                swire: None,
3033            },
3034            Slot {
3035                k: Sk::Ref,
3036                req: true,
3037                der: false,
3038                swire: None,
3039            },
3040        ],
3041        "CONTRACT_TYPE" => &[Slot {
3042            k: Sk::Str,
3043            req: true,
3044            der: false,
3045            swire: None,
3046        }],
3047        "CONVERSION_BASED_UNIT" => &[
3048            Slot {
3049                k: Sk::Ref,
3050                req: true,
3051                der: false,
3052                swire: None,
3053            },
3054            Slot {
3055                k: Sk::Str,
3056                req: true,
3057                der: false,
3058                swire: None,
3059            },
3060            Slot {
3061                k: Sk::Ref,
3062                req: true,
3063                der: false,
3064                swire: None,
3065            },
3066        ],
3067        "COORDINATED_UNIVERSAL_TIME_OFFSET" => &[
3068            Slot {
3069                k: Sk::Int,
3070                req: true,
3071                der: false,
3072                swire: None,
3073            },
3074            Slot {
3075                k: Sk::Int,
3076                req: false,
3077                der: false,
3078                swire: None,
3079            },
3080            Slot {
3081                k: Sk::Enum,
3082                req: true,
3083                der: false,
3084                swire: None,
3085            },
3086        ],
3087        "COORDINATES_LIST" => &[
3088            Slot {
3089                k: Sk::Str,
3090                req: true,
3091                der: false,
3092                swire: None,
3093            },
3094            Slot {
3095                k: Sk::Int,
3096                req: true,
3097                der: false,
3098                swire: None,
3099            },
3100            Slot {
3101                k: Sk::Vec,
3102                req: true,
3103                der: false,
3104                swire: None,
3105            },
3106        ],
3107        "CURVE" => &[Slot {
3108            k: Sk::Str,
3109            req: true,
3110            der: false,
3111            swire: None,
3112        }],
3113        "CURVE_STYLE" => &[
3114            Slot {
3115                k: Sk::Str,
3116                req: true,
3117                der: false,
3118                swire: None,
3119            },
3120            Slot {
3121                k: Sk::Ref,
3122                req: false,
3123                der: false,
3124                swire: None,
3125            },
3126            Slot {
3127                k: Sk::Ref,
3128                req: false,
3129                der: false,
3130                swire: None,
3131            },
3132            Slot {
3133                k: Sk::Ref,
3134                req: false,
3135                der: false,
3136                swire: None,
3137            },
3138        ],
3139        "CURVE_STYLE_FONT" => &[
3140            Slot {
3141                k: Sk::Str,
3142                req: true,
3143                der: false,
3144                swire: None,
3145            },
3146            Slot {
3147                k: Sk::Vec,
3148                req: true,
3149                der: false,
3150                swire: None,
3151            },
3152        ],
3153        "CURVE_STYLE_FONT_AND_SCALING" => &[
3154            Slot {
3155                k: Sk::Str,
3156                req: true,
3157                der: false,
3158                swire: None,
3159            },
3160            Slot {
3161                k: Sk::Ref,
3162                req: true,
3163                der: false,
3164                swire: None,
3165            },
3166            Slot {
3167                k: Sk::Real,
3168                req: true,
3169                der: false,
3170                swire: None,
3171            },
3172        ],
3173        "CURVE_STYLE_FONT_PATTERN" => &[
3174            Slot {
3175                k: Sk::Real,
3176                req: true,
3177                der: false,
3178                swire: None,
3179            },
3180            Slot {
3181                k: Sk::Real,
3182                req: true,
3183                der: false,
3184                swire: None,
3185            },
3186        ],
3187        "CURVE_STYLE_RENDERING" => &[
3188            Slot {
3189                k: Sk::Enum,
3190                req: true,
3191                der: false,
3192                swire: None,
3193            },
3194            Slot {
3195                k: Sk::Ref,
3196                req: true,
3197                der: false,
3198                swire: None,
3199            },
3200        ],
3201        "CYLINDRICAL_SURFACE" => &[
3202            Slot {
3203                k: Sk::Str,
3204                req: true,
3205                der: false,
3206                swire: None,
3207            },
3208            Slot {
3209                k: Sk::Ref,
3210                req: true,
3211                der: false,
3212                swire: None,
3213            },
3214            Slot {
3215                k: Sk::Real,
3216                req: true,
3217                der: false,
3218                swire: None,
3219            },
3220        ],
3221        "CYLINDRICITY_TOLERANCE" => &[
3222            Slot {
3223                k: Sk::Str,
3224                req: true,
3225                der: false,
3226                swire: None,
3227            },
3228            Slot {
3229                k: Sk::Str,
3230                req: false,
3231                der: false,
3232                swire: None,
3233            },
3234            Slot {
3235                k: Sk::Ref,
3236                req: false,
3237                der: false,
3238                swire: None,
3239            },
3240            Slot {
3241                k: Sk::Ref,
3242                req: true,
3243                der: false,
3244                swire: None,
3245            },
3246        ],
3247        "DATE" => &[Slot {
3248            k: Sk::Int,
3249            req: true,
3250            der: false,
3251            swire: None,
3252        }],
3253        "DATE_AND_TIME" => &[
3254            Slot {
3255                k: Sk::Ref,
3256                req: true,
3257                der: false,
3258                swire: None,
3259            },
3260            Slot {
3261                k: Sk::Ref,
3262                req: true,
3263                der: false,
3264                swire: None,
3265            },
3266        ],
3267        "DATE_AND_TIME_ASSIGNMENT" => &[
3268            Slot {
3269                k: Sk::Ref,
3270                req: true,
3271                der: false,
3272                swire: None,
3273            },
3274            Slot {
3275                k: Sk::Ref,
3276                req: true,
3277                der: false,
3278                swire: None,
3279            },
3280        ],
3281        "DATE_ROLE" => &[Slot {
3282            k: Sk::Str,
3283            req: true,
3284            der: false,
3285            swire: None,
3286        }],
3287        "DATE_TIME_ROLE" => &[Slot {
3288            k: Sk::Str,
3289            req: true,
3290            der: false,
3291            swire: None,
3292        }],
3293        "DATUM" => &[
3294            Slot {
3295                k: Sk::Str,
3296                req: true,
3297                der: false,
3298                swire: None,
3299            },
3300            Slot {
3301                k: Sk::Str,
3302                req: false,
3303                der: false,
3304                swire: None,
3305            },
3306            Slot {
3307                k: Sk::Ref,
3308                req: true,
3309                der: false,
3310                swire: None,
3311            },
3312            Slot {
3313                k: Sk::Log,
3314                req: true,
3315                der: false,
3316                swire: None,
3317            },
3318            Slot {
3319                k: Sk::Str,
3320                req: true,
3321                der: false,
3322                swire: None,
3323            },
3324        ],
3325        "DATUM_FEATURE" => &[
3326            Slot {
3327                k: Sk::Str,
3328                req: true,
3329                der: false,
3330                swire: None,
3331            },
3332            Slot {
3333                k: Sk::Str,
3334                req: false,
3335                der: false,
3336                swire: None,
3337            },
3338            Slot {
3339                k: Sk::Ref,
3340                req: true,
3341                der: false,
3342                swire: None,
3343            },
3344            Slot {
3345                k: Sk::Log,
3346                req: true,
3347                der: false,
3348                swire: None,
3349            },
3350        ],
3351        "DATUM_REFERENCE" => &[
3352            Slot {
3353                k: Sk::Int,
3354                req: true,
3355                der: false,
3356                swire: None,
3357            },
3358            Slot {
3359                k: Sk::Ref,
3360                req: true,
3361                der: false,
3362                swire: None,
3363            },
3364        ],
3365        "DATUM_REFERENCE_COMPARTMENT" => &[
3366            Slot {
3367                k: Sk::Str,
3368                req: true,
3369                der: false,
3370                swire: None,
3371            },
3372            Slot {
3373                k: Sk::Str,
3374                req: false,
3375                der: false,
3376                swire: None,
3377            },
3378            Slot {
3379                k: Sk::Ref,
3380                req: true,
3381                der: false,
3382                swire: None,
3383            },
3384            Slot {
3385                k: Sk::Log,
3386                req: true,
3387                der: false,
3388                swire: None,
3389            },
3390            Slot {
3391                k: Sk::Ref,
3392                req: true,
3393                der: false,
3394                swire: None,
3395            },
3396            Slot {
3397                k: Sk::Vec,
3398                req: false,
3399                der: false,
3400                swire: None,
3401            },
3402        ],
3403        "DATUM_REFERENCE_ELEMENT" => &[
3404            Slot {
3405                k: Sk::Str,
3406                req: true,
3407                der: false,
3408                swire: None,
3409            },
3410            Slot {
3411                k: Sk::Str,
3412                req: false,
3413                der: false,
3414                swire: None,
3415            },
3416            Slot {
3417                k: Sk::Ref,
3418                req: true,
3419                der: false,
3420                swire: None,
3421            },
3422            Slot {
3423                k: Sk::Log,
3424                req: true,
3425                der: false,
3426                swire: None,
3427            },
3428            Slot {
3429                k: Sk::Ref,
3430                req: true,
3431                der: false,
3432                swire: None,
3433            },
3434            Slot {
3435                k: Sk::Vec,
3436                req: false,
3437                der: false,
3438                swire: None,
3439            },
3440        ],
3441        "DATUM_REFERENCE_MODIFIER_WITH_VALUE" => &[
3442            Slot {
3443                k: Sk::Enum,
3444                req: true,
3445                der: false,
3446                swire: None,
3447            },
3448            Slot {
3449                k: Sk::Ref,
3450                req: true,
3451                der: false,
3452                swire: None,
3453            },
3454        ],
3455        "DATUM_SYSTEM" => &[
3456            Slot {
3457                k: Sk::Str,
3458                req: true,
3459                der: false,
3460                swire: None,
3461            },
3462            Slot {
3463                k: Sk::Str,
3464                req: false,
3465                der: false,
3466                swire: None,
3467            },
3468            Slot {
3469                k: Sk::Ref,
3470                req: true,
3471                der: false,
3472                swire: None,
3473            },
3474            Slot {
3475                k: Sk::Log,
3476                req: true,
3477                der: false,
3478                swire: None,
3479            },
3480            Slot {
3481                k: Sk::Vec,
3482                req: true,
3483                der: false,
3484                swire: None,
3485            },
3486        ],
3487        "DATUM_TARGET" => &[
3488            Slot {
3489                k: Sk::Str,
3490                req: true,
3491                der: false,
3492                swire: None,
3493            },
3494            Slot {
3495                k: Sk::Str,
3496                req: false,
3497                der: false,
3498                swire: None,
3499            },
3500            Slot {
3501                k: Sk::Ref,
3502                req: true,
3503                der: false,
3504                swire: None,
3505            },
3506            Slot {
3507                k: Sk::Log,
3508                req: true,
3509                der: false,
3510                swire: None,
3511            },
3512            Slot {
3513                k: Sk::Str,
3514                req: true,
3515                der: false,
3516                swire: None,
3517            },
3518        ],
3519        "DEFAULT_MODEL_GEOMETRIC_VIEW" => &[
3520            Slot {
3521                k: Sk::Str,
3522                req: true,
3523                der: false,
3524                swire: None,
3525            },
3526            Slot {
3527                k: Sk::Str,
3528                req: false,
3529                der: false,
3530                swire: None,
3531            },
3532            Slot {
3533                k: Sk::Ref,
3534                req: true,
3535                der: false,
3536                swire: None,
3537            },
3538            Slot {
3539                k: Sk::Ref,
3540                req: true,
3541                der: false,
3542                swire: None,
3543            },
3544            Slot {
3545                k: Sk::Str,
3546                req: true,
3547                der: false,
3548                swire: None,
3549            },
3550            Slot {
3551                k: Sk::Str,
3552                req: false,
3553                der: false,
3554                swire: None,
3555            },
3556            Slot {
3557                k: Sk::Ref,
3558                req: true,
3559                der: false,
3560                swire: None,
3561            },
3562            Slot {
3563                k: Sk::Log,
3564                req: true,
3565                der: true,
3566                swire: None,
3567            },
3568        ],
3569        "DEFINED_CHARACTER_GLYPH" => &[
3570            Slot {
3571                k: Sk::Str,
3572                req: true,
3573                der: false,
3574                swire: None,
3575            },
3576            Slot {
3577                k: Sk::Ref,
3578                req: true,
3579                der: false,
3580                swire: None,
3581            },
3582            Slot {
3583                k: Sk::Ref,
3584                req: true,
3585                der: false,
3586                swire: None,
3587            },
3588        ],
3589        "DEFINED_SYMBOL" => &[
3590            Slot {
3591                k: Sk::Str,
3592                req: true,
3593                der: false,
3594                swire: None,
3595            },
3596            Slot {
3597                k: Sk::Ref,
3598                req: true,
3599                der: false,
3600                swire: None,
3601            },
3602            Slot {
3603                k: Sk::Ref,
3604                req: true,
3605                der: false,
3606                swire: None,
3607            },
3608        ],
3609        "DEFINITIONAL_REPRESENTATION" => &[
3610            Slot {
3611                k: Sk::Str,
3612                req: true,
3613                der: false,
3614                swire: None,
3615            },
3616            Slot {
3617                k: Sk::Vec,
3618                req: true,
3619                der: false,
3620                swire: None,
3621            },
3622            Slot {
3623                k: Sk::Ref,
3624                req: true,
3625                der: false,
3626                swire: None,
3627            },
3628        ],
3629        "DEFINITIONAL_REPRESENTATION_RELATIONSHIP" => &[
3630            Slot {
3631                k: Sk::Str,
3632                req: true,
3633                der: false,
3634                swire: None,
3635            },
3636            Slot {
3637                k: Sk::Str,
3638                req: false,
3639                der: false,
3640                swire: None,
3641            },
3642            Slot {
3643                k: Sk::Ref,
3644                req: true,
3645                der: false,
3646                swire: None,
3647            },
3648            Slot {
3649                k: Sk::Ref,
3650                req: true,
3651                der: false,
3652                swire: None,
3653            },
3654        ],
3655        "DEFINITIONAL_REPRESENTATION_RELATIONSHIP_WITH_SAME_CONTEXT" => &[
3656            Slot {
3657                k: Sk::Str,
3658                req: true,
3659                der: false,
3660                swire: None,
3661            },
3662            Slot {
3663                k: Sk::Str,
3664                req: false,
3665                der: false,
3666                swire: None,
3667            },
3668            Slot {
3669                k: Sk::Ref,
3670                req: true,
3671                der: false,
3672                swire: None,
3673            },
3674            Slot {
3675                k: Sk::Ref,
3676                req: true,
3677                der: false,
3678                swire: None,
3679            },
3680        ],
3681        "DEGENERATE_TOROIDAL_SURFACE" => &[
3682            Slot {
3683                k: Sk::Str,
3684                req: true,
3685                der: false,
3686                swire: None,
3687            },
3688            Slot {
3689                k: Sk::Ref,
3690                req: true,
3691                der: false,
3692                swire: None,
3693            },
3694            Slot {
3695                k: Sk::Real,
3696                req: true,
3697                der: false,
3698                swire: None,
3699            },
3700            Slot {
3701                k: Sk::Real,
3702                req: true,
3703                der: false,
3704                swire: None,
3705            },
3706            Slot {
3707                k: Sk::Bool,
3708                req: true,
3709                der: false,
3710                swire: None,
3711            },
3712        ],
3713        "DERIVED_SHAPE_ASPECT" => &[
3714            Slot {
3715                k: Sk::Str,
3716                req: true,
3717                der: false,
3718                swire: None,
3719            },
3720            Slot {
3721                k: Sk::Str,
3722                req: false,
3723                der: false,
3724                swire: None,
3725            },
3726            Slot {
3727                k: Sk::Ref,
3728                req: true,
3729                der: false,
3730                swire: None,
3731            },
3732            Slot {
3733                k: Sk::Log,
3734                req: true,
3735                der: false,
3736                swire: None,
3737            },
3738        ],
3739        "DERIVED_UNIT" => &[Slot {
3740            k: Sk::Vec,
3741            req: true,
3742            der: false,
3743            swire: None,
3744        }],
3745        "DERIVED_UNIT_ELEMENT" => &[
3746            Slot {
3747                k: Sk::Ref,
3748                req: true,
3749                der: false,
3750                swire: None,
3751            },
3752            Slot {
3753                k: Sk::Real,
3754                req: true,
3755                der: false,
3756                swire: None,
3757            },
3758        ],
3759        "DESCRIPTION_ATTRIBUTE" => &[
3760            Slot {
3761                k: Sk::Str,
3762                req: true,
3763                der: false,
3764                swire: None,
3765            },
3766            Slot {
3767                k: Sk::Ref,
3768                req: true,
3769                der: false,
3770                swire: None,
3771            },
3772        ],
3773        "DESCRIPTIVE_REPRESENTATION_ITEM" => &[
3774            Slot {
3775                k: Sk::Str,
3776                req: true,
3777                der: false,
3778                swire: None,
3779            },
3780            Slot {
3781                k: Sk::Str,
3782                req: true,
3783                der: false,
3784                swire: None,
3785            },
3786        ],
3787        "DESIGN_CONTEXT" => &[
3788            Slot {
3789                k: Sk::Str,
3790                req: true,
3791                der: false,
3792                swire: None,
3793            },
3794            Slot {
3795                k: Sk::Ref,
3796                req: true,
3797                der: false,
3798                swire: None,
3799            },
3800            Slot {
3801                k: Sk::Str,
3802                req: true,
3803                der: false,
3804                swire: None,
3805            },
3806        ],
3807        "DIMENSIONAL_CHARACTERISTIC_REPRESENTATION" => &[
3808            Slot {
3809                k: Sk::Ref,
3810                req: true,
3811                der: false,
3812                swire: None,
3813            },
3814            Slot {
3815                k: Sk::Ref,
3816                req: true,
3817                der: false,
3818                swire: None,
3819            },
3820        ],
3821        "DIMENSIONAL_EXPONENTS" => &[
3822            Slot {
3823                k: Sk::Real,
3824                req: true,
3825                der: false,
3826                swire: None,
3827            },
3828            Slot {
3829                k: Sk::Real,
3830                req: true,
3831                der: false,
3832                swire: None,
3833            },
3834            Slot {
3835                k: Sk::Real,
3836                req: true,
3837                der: false,
3838                swire: None,
3839            },
3840            Slot {
3841                k: Sk::Real,
3842                req: true,
3843                der: false,
3844                swire: None,
3845            },
3846            Slot {
3847                k: Sk::Real,
3848                req: true,
3849                der: false,
3850                swire: None,
3851            },
3852            Slot {
3853                k: Sk::Real,
3854                req: true,
3855                der: false,
3856                swire: None,
3857            },
3858            Slot {
3859                k: Sk::Real,
3860                req: true,
3861                der: false,
3862                swire: None,
3863            },
3864        ],
3865        "DIMENSIONAL_LOCATION" => &[
3866            Slot {
3867                k: Sk::Str,
3868                req: true,
3869                der: false,
3870                swire: None,
3871            },
3872            Slot {
3873                k: Sk::Str,
3874                req: false,
3875                der: false,
3876                swire: None,
3877            },
3878            Slot {
3879                k: Sk::Ref,
3880                req: true,
3881                der: false,
3882                swire: None,
3883            },
3884            Slot {
3885                k: Sk::Ref,
3886                req: true,
3887                der: false,
3888                swire: None,
3889            },
3890        ],
3891        "DIMENSIONAL_LOCATION_WITH_PATH" => &[
3892            Slot {
3893                k: Sk::Str,
3894                req: true,
3895                der: false,
3896                swire: None,
3897            },
3898            Slot {
3899                k: Sk::Str,
3900                req: false,
3901                der: false,
3902                swire: None,
3903            },
3904            Slot {
3905                k: Sk::Ref,
3906                req: true,
3907                der: false,
3908                swire: None,
3909            },
3910            Slot {
3911                k: Sk::Ref,
3912                req: true,
3913                der: false,
3914                swire: None,
3915            },
3916            Slot {
3917                k: Sk::Ref,
3918                req: true,
3919                der: false,
3920                swire: None,
3921            },
3922        ],
3923        "DIMENSIONAL_SIZE" => &[
3924            Slot {
3925                k: Sk::Ref,
3926                req: true,
3927                der: false,
3928                swire: None,
3929            },
3930            Slot {
3931                k: Sk::Str,
3932                req: true,
3933                der: false,
3934                swire: None,
3935            },
3936        ],
3937        "DIMENSIONAL_SIZE_WITH_DATUM_FEATURE" => &[
3938            Slot {
3939                k: Sk::Str,
3940                req: true,
3941                der: false,
3942                swire: None,
3943            },
3944            Slot {
3945                k: Sk::Str,
3946                req: false,
3947                der: false,
3948                swire: None,
3949            },
3950            Slot {
3951                k: Sk::Ref,
3952                req: true,
3953                der: false,
3954                swire: None,
3955            },
3956            Slot {
3957                k: Sk::Log,
3958                req: true,
3959                der: false,
3960                swire: None,
3961            },
3962            Slot {
3963                k: Sk::Ref,
3964                req: true,
3965                der: false,
3966                swire: None,
3967            },
3968            Slot {
3969                k: Sk::Str,
3970                req: true,
3971                der: false,
3972                swire: None,
3973            },
3974        ],
3975        "DIMENSIONAL_SIZE_WITH_PATH" => &[
3976            Slot {
3977                k: Sk::Ref,
3978                req: true,
3979                der: false,
3980                swire: None,
3981            },
3982            Slot {
3983                k: Sk::Str,
3984                req: true,
3985                der: false,
3986                swire: None,
3987            },
3988            Slot {
3989                k: Sk::Ref,
3990                req: true,
3991                der: false,
3992                swire: None,
3993            },
3994        ],
3995        "DIRECTED_DIMENSIONAL_LOCATION" => &[
3996            Slot {
3997                k: Sk::Str,
3998                req: true,
3999                der: false,
4000                swire: None,
4001            },
4002            Slot {
4003                k: Sk::Str,
4004                req: false,
4005                der: false,
4006                swire: None,
4007            },
4008            Slot {
4009                k: Sk::Ref,
4010                req: true,
4011                der: false,
4012                swire: None,
4013            },
4014            Slot {
4015                k: Sk::Ref,
4016                req: true,
4017                der: false,
4018                swire: None,
4019            },
4020        ],
4021        "DIRECTION" => &[
4022            Slot {
4023                k: Sk::Str,
4024                req: true,
4025                der: false,
4026                swire: None,
4027            },
4028            Slot {
4029                k: Sk::Vec,
4030                req: true,
4031                der: false,
4032                swire: None,
4033            },
4034        ],
4035        "DOCUMENT" => &[
4036            Slot {
4037                k: Sk::Str,
4038                req: true,
4039                der: false,
4040                swire: None,
4041            },
4042            Slot {
4043                k: Sk::Str,
4044                req: true,
4045                der: false,
4046                swire: None,
4047            },
4048            Slot {
4049                k: Sk::Str,
4050                req: false,
4051                der: false,
4052                swire: None,
4053            },
4054            Slot {
4055                k: Sk::Ref,
4056                req: true,
4057                der: false,
4058                swire: None,
4059            },
4060        ],
4061        "DOCUMENT_FILE" => &[
4062            Slot {
4063                k: Sk::Str,
4064                req: true,
4065                der: false,
4066                swire: None,
4067            },
4068            Slot {
4069                k: Sk::Str,
4070                req: true,
4071                der: false,
4072                swire: None,
4073            },
4074            Slot {
4075                k: Sk::Str,
4076                req: false,
4077                der: false,
4078                swire: None,
4079            },
4080            Slot {
4081                k: Sk::Ref,
4082                req: true,
4083                der: false,
4084                swire: None,
4085            },
4086            Slot {
4087                k: Sk::Str,
4088                req: true,
4089                der: false,
4090                swire: None,
4091            },
4092            Slot {
4093                k: Sk::Str,
4094                req: false,
4095                der: false,
4096                swire: None,
4097            },
4098        ],
4099        "DOCUMENT_PRODUCT_ASSOCIATION" => &[
4100            Slot {
4101                k: Sk::Str,
4102                req: true,
4103                der: false,
4104                swire: None,
4105            },
4106            Slot {
4107                k: Sk::Str,
4108                req: false,
4109                der: false,
4110                swire: None,
4111            },
4112            Slot {
4113                k: Sk::Ref,
4114                req: true,
4115                der: false,
4116                swire: None,
4117            },
4118            Slot {
4119                k: Sk::Ref,
4120                req: true,
4121                der: false,
4122                swire: None,
4123            },
4124        ],
4125        "DOCUMENT_PRODUCT_EQUIVALENCE" => &[
4126            Slot {
4127                k: Sk::Str,
4128                req: true,
4129                der: false,
4130                swire: None,
4131            },
4132            Slot {
4133                k: Sk::Str,
4134                req: false,
4135                der: false,
4136                swire: None,
4137            },
4138            Slot {
4139                k: Sk::Ref,
4140                req: true,
4141                der: false,
4142                swire: None,
4143            },
4144            Slot {
4145                k: Sk::Ref,
4146                req: true,
4147                der: false,
4148                swire: None,
4149            },
4150        ],
4151        "DOCUMENT_REFERENCE" => &[
4152            Slot {
4153                k: Sk::Ref,
4154                req: true,
4155                der: false,
4156                swire: None,
4157            },
4158            Slot {
4159                k: Sk::Str,
4160                req: true,
4161                der: false,
4162                swire: None,
4163            },
4164        ],
4165        "DOCUMENT_REPRESENTATION_TYPE" => &[
4166            Slot {
4167                k: Sk::Str,
4168                req: true,
4169                der: false,
4170                swire: None,
4171            },
4172            Slot {
4173                k: Sk::Ref,
4174                req: true,
4175                der: false,
4176                swire: None,
4177            },
4178        ],
4179        "DOCUMENT_TYPE" => &[Slot {
4180            k: Sk::Str,
4181            req: true,
4182            der: false,
4183            swire: None,
4184        }],
4185        "DRAUGHTING_ANNOTATION_OCCURRENCE" => &[
4186            Slot {
4187                k: Sk::Str,
4188                req: true,
4189                der: false,
4190                swire: None,
4191            },
4192            Slot {
4193                k: Sk::Vec,
4194                req: true,
4195                der: false,
4196                swire: None,
4197            },
4198            Slot {
4199                k: Sk::Ref,
4200                req: true,
4201                der: false,
4202                swire: None,
4203            },
4204        ],
4205        "DRAUGHTING_CALLOUT" => &[
4206            Slot {
4207                k: Sk::Str,
4208                req: true,
4209                der: false,
4210                swire: None,
4211            },
4212            Slot {
4213                k: Sk::Vec,
4214                req: true,
4215                der: false,
4216                swire: None,
4217            },
4218        ],
4219        "DRAUGHTING_CALLOUT_RELATIONSHIP" => &[
4220            Slot {
4221                k: Sk::Str,
4222                req: true,
4223                der: false,
4224                swire: None,
4225            },
4226            Slot {
4227                k: Sk::Str,
4228                req: true,
4229                der: false,
4230                swire: None,
4231            },
4232            Slot {
4233                k: Sk::Ref,
4234                req: true,
4235                der: false,
4236                swire: None,
4237            },
4238            Slot {
4239                k: Sk::Ref,
4240                req: true,
4241                der: false,
4242                swire: None,
4243            },
4244        ],
4245        "DRAUGHTING_MODEL" => &[
4246            Slot {
4247                k: Sk::Str,
4248                req: true,
4249                der: false,
4250                swire: None,
4251            },
4252            Slot {
4253                k: Sk::Vec,
4254                req: true,
4255                der: false,
4256                swire: None,
4257            },
4258            Slot {
4259                k: Sk::Ref,
4260                req: true,
4261                der: false,
4262                swire: None,
4263            },
4264        ],
4265        "DRAUGHTING_MODEL_ITEM_ASSOCIATION" => &[
4266            Slot {
4267                k: Sk::Str,
4268                req: true,
4269                der: false,
4270                swire: None,
4271            },
4272            Slot {
4273                k: Sk::Str,
4274                req: false,
4275                der: false,
4276                swire: None,
4277            },
4278            Slot {
4279                k: Sk::Ref,
4280                req: true,
4281                der: false,
4282                swire: None,
4283            },
4284            Slot {
4285                k: Sk::Ref,
4286                req: true,
4287                der: false,
4288                swire: None,
4289            },
4290            Slot {
4291                k: Sk::Ref,
4292                req: true,
4293                der: false,
4294                swire: None,
4295            },
4296        ],
4297        "DRAUGHTING_MODEL_ITEM_ASSOCIATION_WITH_PLACEHOLDER" => &[
4298            Slot {
4299                k: Sk::Str,
4300                req: true,
4301                der: false,
4302                swire: None,
4303            },
4304            Slot {
4305                k: Sk::Str,
4306                req: false,
4307                der: false,
4308                swire: None,
4309            },
4310            Slot {
4311                k: Sk::Ref,
4312                req: true,
4313                der: false,
4314                swire: None,
4315            },
4316            Slot {
4317                k: Sk::Ref,
4318                req: true,
4319                der: false,
4320                swire: None,
4321            },
4322            Slot {
4323                k: Sk::Ref,
4324                req: true,
4325                der: false,
4326                swire: None,
4327            },
4328            Slot {
4329                k: Sk::Ref,
4330                req: true,
4331                der: false,
4332                swire: None,
4333            },
4334        ],
4335        "DRAUGHTING_PRE_DEFINED_COLOUR" => &[Slot {
4336            k: Sk::Str,
4337            req: true,
4338            der: false,
4339            swire: None,
4340        }],
4341        "DRAUGHTING_PRE_DEFINED_CURVE_FONT" => &[Slot {
4342            k: Sk::Str,
4343            req: true,
4344            der: false,
4345            swire: None,
4346        }],
4347        "DRAUGHTING_PRE_DEFINED_TEXT_FONT" => &[Slot {
4348            k: Sk::Str,
4349            req: true,
4350            der: false,
4351            swire: None,
4352        }],
4353        "EDGE" => &[
4354            Slot {
4355                k: Sk::Str,
4356                req: true,
4357                der: false,
4358                swire: None,
4359            },
4360            Slot {
4361                k: Sk::Ref,
4362                req: true,
4363                der: false,
4364                swire: None,
4365            },
4366            Slot {
4367                k: Sk::Ref,
4368                req: true,
4369                der: false,
4370                swire: None,
4371            },
4372        ],
4373        "EDGE_CURVE" => &[
4374            Slot {
4375                k: Sk::Str,
4376                req: true,
4377                der: false,
4378                swire: None,
4379            },
4380            Slot {
4381                k: Sk::Ref,
4382                req: true,
4383                der: false,
4384                swire: None,
4385            },
4386            Slot {
4387                k: Sk::Ref,
4388                req: true,
4389                der: false,
4390                swire: None,
4391            },
4392            Slot {
4393                k: Sk::Ref,
4394                req: true,
4395                der: false,
4396                swire: None,
4397            },
4398            Slot {
4399                k: Sk::Bool,
4400                req: true,
4401                der: false,
4402                swire: None,
4403            },
4404        ],
4405        "EDGE_LOOP" => &[
4406            Slot {
4407                k: Sk::Str,
4408                req: true,
4409                der: false,
4410                swire: None,
4411            },
4412            Slot {
4413                k: Sk::Vec,
4414                req: true,
4415                der: false,
4416                swire: None,
4417            },
4418        ],
4419        "EFFECTIVITY" => &[Slot {
4420            k: Sk::Str,
4421            req: true,
4422            der: false,
4423            swire: None,
4424        }],
4425        "ELEMENTARY_SURFACE" => &[
4426            Slot {
4427                k: Sk::Str,
4428                req: true,
4429                der: false,
4430                swire: None,
4431            },
4432            Slot {
4433                k: Sk::Ref,
4434                req: true,
4435                der: false,
4436                swire: None,
4437            },
4438        ],
4439        "ELLIPSE" => &[
4440            Slot {
4441                k: Sk::Str,
4442                req: true,
4443                der: false,
4444                swire: None,
4445            },
4446            Slot {
4447                k: Sk::Ref,
4448                req: true,
4449                der: false,
4450                swire: None,
4451            },
4452            Slot {
4453                k: Sk::Real,
4454                req: true,
4455                der: false,
4456                swire: None,
4457            },
4458            Slot {
4459                k: Sk::Real,
4460                req: true,
4461                der: false,
4462                swire: None,
4463            },
4464        ],
4465        "EXPRESSION" => &[],
4466        "EXTERNAL_IDENTIFICATION_ASSIGNMENT" => &[
4467            Slot {
4468                k: Sk::Str,
4469                req: true,
4470                der: false,
4471                swire: None,
4472            },
4473            Slot {
4474                k: Sk::Ref,
4475                req: true,
4476                der: false,
4477                swire: None,
4478            },
4479            Slot {
4480                k: Sk::Ref,
4481                req: true,
4482                der: false,
4483                swire: None,
4484            },
4485        ],
4486        "EXTERNAL_SOURCE" => &[Slot {
4487            k: Sk::Str,
4488            req: true,
4489            der: false,
4490            swire: None,
4491        }],
4492        "EXTERNALLY_DEFINED_CHARACTER_GLYPH" => &[
4493            Slot {
4494                k: Sk::Str,
4495                req: true,
4496                der: false,
4497                swire: None,
4498            },
4499            Slot {
4500                k: Sk::Ref,
4501                req: true,
4502                der: false,
4503                swire: None,
4504            },
4505        ],
4506        "EXTERNALLY_DEFINED_CURVE_FONT" => &[
4507            Slot {
4508                k: Sk::Str,
4509                req: true,
4510                der: false,
4511                swire: None,
4512            },
4513            Slot {
4514                k: Sk::Ref,
4515                req: true,
4516                der: false,
4517                swire: None,
4518            },
4519        ],
4520        "EXTERNALLY_DEFINED_HATCH_STYLE" => &[
4521            Slot {
4522                k: Sk::Str,
4523                req: true,
4524                der: false,
4525                swire: None,
4526            },
4527            Slot {
4528                k: Sk::Ref,
4529                req: true,
4530                der: false,
4531                swire: None,
4532            },
4533            Slot {
4534                k: Sk::Str,
4535                req: true,
4536                der: false,
4537                swire: None,
4538            },
4539        ],
4540        "EXTERNALLY_DEFINED_ITEM" => &[
4541            Slot {
4542                k: Sk::Str,
4543                req: true,
4544                der: false,
4545                swire: None,
4546            },
4547            Slot {
4548                k: Sk::Ref,
4549                req: true,
4550                der: false,
4551                swire: None,
4552            },
4553        ],
4554        "EXTERNALLY_DEFINED_STYLE" => &[
4555            Slot {
4556                k: Sk::Str,
4557                req: true,
4558                der: false,
4559                swire: None,
4560            },
4561            Slot {
4562                k: Sk::Ref,
4563                req: true,
4564                der: false,
4565                swire: None,
4566            },
4567        ],
4568        "EXTERNALLY_DEFINED_SYMBOL" => &[
4569            Slot {
4570                k: Sk::Str,
4571                req: true,
4572                der: false,
4573                swire: None,
4574            },
4575            Slot {
4576                k: Sk::Ref,
4577                req: true,
4578                der: false,
4579                swire: None,
4580            },
4581        ],
4582        "EXTERNALLY_DEFINED_TEXT_FONT" => &[
4583            Slot {
4584                k: Sk::Str,
4585                req: true,
4586                der: false,
4587                swire: None,
4588            },
4589            Slot {
4590                k: Sk::Ref,
4591                req: true,
4592                der: false,
4593                swire: None,
4594            },
4595        ],
4596        "EXTERNALLY_DEFINED_TILE" => &[
4597            Slot {
4598                k: Sk::Str,
4599                req: true,
4600                der: false,
4601                swire: None,
4602            },
4603            Slot {
4604                k: Sk::Ref,
4605                req: true,
4606                der: false,
4607                swire: None,
4608            },
4609        ],
4610        "EXTERNALLY_DEFINED_TILE_STYLE" => &[
4611            Slot {
4612                k: Sk::Str,
4613                req: true,
4614                der: false,
4615                swire: None,
4616            },
4617            Slot {
4618                k: Sk::Ref,
4619                req: true,
4620                der: false,
4621                swire: None,
4622            },
4623            Slot {
4624                k: Sk::Str,
4625                req: true,
4626                der: false,
4627                swire: None,
4628            },
4629        ],
4630        "FACE" => &[
4631            Slot {
4632                k: Sk::Str,
4633                req: true,
4634                der: false,
4635                swire: None,
4636            },
4637            Slot {
4638                k: Sk::Vec,
4639                req: true,
4640                der: false,
4641                swire: None,
4642            },
4643        ],
4644        "FACE_BOUND" => &[
4645            Slot {
4646                k: Sk::Str,
4647                req: true,
4648                der: false,
4649                swire: None,
4650            },
4651            Slot {
4652                k: Sk::Ref,
4653                req: true,
4654                der: false,
4655                swire: None,
4656            },
4657            Slot {
4658                k: Sk::Bool,
4659                req: true,
4660                der: false,
4661                swire: None,
4662            },
4663        ],
4664        "FACE_OUTER_BOUND" => &[
4665            Slot {
4666                k: Sk::Str,
4667                req: true,
4668                der: false,
4669                swire: None,
4670            },
4671            Slot {
4672                k: Sk::Ref,
4673                req: true,
4674                der: false,
4675                swire: None,
4676            },
4677            Slot {
4678                k: Sk::Bool,
4679                req: true,
4680                der: false,
4681                swire: None,
4682            },
4683        ],
4684        "FACE_SURFACE" => &[
4685            Slot {
4686                k: Sk::Str,
4687                req: true,
4688                der: false,
4689                swire: None,
4690            },
4691            Slot {
4692                k: Sk::Vec,
4693                req: true,
4694                der: false,
4695                swire: None,
4696            },
4697            Slot {
4698                k: Sk::Ref,
4699                req: true,
4700                der: false,
4701                swire: None,
4702            },
4703            Slot {
4704                k: Sk::Bool,
4705                req: true,
4706                der: false,
4707                swire: None,
4708            },
4709        ],
4710        "FEATURE_FOR_DATUM_TARGET_RELATIONSHIP" => &[
4711            Slot {
4712                k: Sk::Str,
4713                req: true,
4714                der: false,
4715                swire: None,
4716            },
4717            Slot {
4718                k: Sk::Str,
4719                req: false,
4720                der: false,
4721                swire: None,
4722            },
4723            Slot {
4724                k: Sk::Ref,
4725                req: true,
4726                der: false,
4727                swire: None,
4728            },
4729            Slot {
4730                k: Sk::Ref,
4731                req: true,
4732                der: false,
4733                swire: None,
4734            },
4735        ],
4736        "FILL_AREA_STYLE" => &[
4737            Slot {
4738                k: Sk::Str,
4739                req: true,
4740                der: false,
4741                swire: None,
4742            },
4743            Slot {
4744                k: Sk::Vec,
4745                req: true,
4746                der: false,
4747                swire: None,
4748            },
4749        ],
4750        "FILL_AREA_STYLE_COLOUR" => &[
4751            Slot {
4752                k: Sk::Str,
4753                req: true,
4754                der: false,
4755                swire: None,
4756            },
4757            Slot {
4758                k: Sk::Ref,
4759                req: true,
4760                der: false,
4761                swire: None,
4762            },
4763        ],
4764        "FILL_AREA_STYLE_HATCHING" => &[
4765            Slot {
4766                k: Sk::Str,
4767                req: true,
4768                der: false,
4769                swire: None,
4770            },
4771            Slot {
4772                k: Sk::Ref,
4773                req: true,
4774                der: false,
4775                swire: None,
4776            },
4777            Slot {
4778                k: Sk::Ref,
4779                req: true,
4780                der: false,
4781                swire: None,
4782            },
4783            Slot {
4784                k: Sk::Ref,
4785                req: true,
4786                der: false,
4787                swire: None,
4788            },
4789            Slot {
4790                k: Sk::Ref,
4791                req: true,
4792                der: false,
4793                swire: None,
4794            },
4795            Slot {
4796                k: Sk::Real,
4797                req: true,
4798                der: false,
4799                swire: None,
4800            },
4801        ],
4802        "FILL_AREA_STYLE_TILE_COLOURED_REGION" => &[
4803            Slot {
4804                k: Sk::Str,
4805                req: true,
4806                der: false,
4807                swire: None,
4808            },
4809            Slot {
4810                k: Sk::Ref,
4811                req: true,
4812                der: false,
4813                swire: None,
4814            },
4815            Slot {
4816                k: Sk::Ref,
4817                req: true,
4818                der: false,
4819                swire: None,
4820            },
4821        ],
4822        "FILL_AREA_STYLE_TILE_CURVE_WITH_STYLE" => &[
4823            Slot {
4824                k: Sk::Str,
4825                req: true,
4826                der: false,
4827                swire: None,
4828            },
4829            Slot {
4830                k: Sk::Ref,
4831                req: true,
4832                der: false,
4833                swire: None,
4834            },
4835        ],
4836        "FILL_AREA_STYLE_TILE_SYMBOL_WITH_STYLE" => &[
4837            Slot {
4838                k: Sk::Str,
4839                req: true,
4840                der: false,
4841                swire: None,
4842            },
4843            Slot {
4844                k: Sk::Ref,
4845                req: true,
4846                der: false,
4847                swire: None,
4848            },
4849        ],
4850        "FILL_AREA_STYLE_TILES" => &[
4851            Slot {
4852                k: Sk::Str,
4853                req: true,
4854                der: false,
4855                swire: None,
4856            },
4857            Slot {
4858                k: Sk::Ref,
4859                req: true,
4860                der: false,
4861                swire: None,
4862            },
4863            Slot {
4864                k: Sk::Vec,
4865                req: true,
4866                der: false,
4867                swire: None,
4868            },
4869            Slot {
4870                k: Sk::Real,
4871                req: true,
4872                der: false,
4873                swire: None,
4874            },
4875        ],
4876        "FLATNESS_TOLERANCE" => &[
4877            Slot {
4878                k: Sk::Str,
4879                req: true,
4880                der: false,
4881                swire: None,
4882            },
4883            Slot {
4884                k: Sk::Str,
4885                req: false,
4886                der: false,
4887                swire: None,
4888            },
4889            Slot {
4890                k: Sk::Ref,
4891                req: false,
4892                der: false,
4893                swire: None,
4894            },
4895            Slot {
4896                k: Sk::Ref,
4897                req: true,
4898                der: false,
4899                swire: None,
4900            },
4901        ],
4902        "FOUNDED_ITEM" => &[],
4903        "FUNCTIONALLY_DEFINED_TRANSFORMATION" => &[
4904            Slot {
4905                k: Sk::Str,
4906                req: true,
4907                der: false,
4908                swire: None,
4909            },
4910            Slot {
4911                k: Sk::Str,
4912                req: false,
4913                der: false,
4914                swire: None,
4915            },
4916        ],
4917        "GENERAL_DATUM_REFERENCE" => &[
4918            Slot {
4919                k: Sk::Str,
4920                req: true,
4921                der: false,
4922                swire: None,
4923            },
4924            Slot {
4925                k: Sk::Str,
4926                req: false,
4927                der: false,
4928                swire: None,
4929            },
4930            Slot {
4931                k: Sk::Ref,
4932                req: true,
4933                der: false,
4934                swire: None,
4935            },
4936            Slot {
4937                k: Sk::Log,
4938                req: true,
4939                der: false,
4940                swire: None,
4941            },
4942            Slot {
4943                k: Sk::Ref,
4944                req: true,
4945                der: false,
4946                swire: None,
4947            },
4948            Slot {
4949                k: Sk::Vec,
4950                req: false,
4951                der: false,
4952                swire: None,
4953            },
4954        ],
4955        "GENERAL_PROPERTY" => &[
4956            Slot {
4957                k: Sk::Str,
4958                req: true,
4959                der: false,
4960                swire: None,
4961            },
4962            Slot {
4963                k: Sk::Str,
4964                req: true,
4965                der: false,
4966                swire: None,
4967            },
4968            Slot {
4969                k: Sk::Str,
4970                req: false,
4971                der: false,
4972                swire: None,
4973            },
4974        ],
4975        "GENERAL_PROPERTY_ASSOCIATION" => &[
4976            Slot {
4977                k: Sk::Str,
4978                req: true,
4979                der: false,
4980                swire: None,
4981            },
4982            Slot {
4983                k: Sk::Str,
4984                req: false,
4985                der: false,
4986                swire: None,
4987            },
4988            Slot {
4989                k: Sk::Ref,
4990                req: true,
4991                der: false,
4992                swire: None,
4993            },
4994            Slot {
4995                k: Sk::Ref,
4996                req: true,
4997                der: false,
4998                swire: None,
4999            },
5000        ],
5001        "GENERIC_EXPRESSION" => &[],
5002        "GENERIC_LITERAL" => &[],
5003        "GENERIC_PRODUCT_DEFINITION_REFERENCE" => &[Slot {
5004            k: Sk::Ref,
5005            req: true,
5006            der: false,
5007            swire: None,
5008        }],
5009        "GEOMETRIC_CURVE_SET" => &[
5010            Slot {
5011                k: Sk::Str,
5012                req: true,
5013                der: false,
5014                swire: None,
5015            },
5016            Slot {
5017                k: Sk::Vec,
5018                req: true,
5019                der: false,
5020                swire: None,
5021            },
5022        ],
5023        "GEOMETRIC_ITEM_SPECIFIC_USAGE" => &[
5024            Slot {
5025                k: Sk::Str,
5026                req: true,
5027                der: false,
5028                swire: None,
5029            },
5030            Slot {
5031                k: Sk::Str,
5032                req: false,
5033                der: false,
5034                swire: None,
5035            },
5036            Slot {
5037                k: Sk::Ref,
5038                req: true,
5039                der: false,
5040                swire: None,
5041            },
5042            Slot {
5043                k: Sk::Ref,
5044                req: true,
5045                der: false,
5046                swire: None,
5047            },
5048            Slot {
5049                k: Sk::Ref,
5050                req: true,
5051                der: false,
5052                swire: None,
5053            },
5054        ],
5055        "GEOMETRIC_REPRESENTATION_CONTEXT" => &[
5056            Slot {
5057                k: Sk::Str,
5058                req: true,
5059                der: false,
5060                swire: None,
5061            },
5062            Slot {
5063                k: Sk::Str,
5064                req: true,
5065                der: false,
5066                swire: None,
5067            },
5068            Slot {
5069                k: Sk::Int,
5070                req: true,
5071                der: false,
5072                swire: None,
5073            },
5074        ],
5075        "GEOMETRIC_REPRESENTATION_ITEM" => &[Slot {
5076            k: Sk::Str,
5077            req: true,
5078            der: false,
5079            swire: None,
5080        }],
5081        "GEOMETRIC_SET" => &[
5082            Slot {
5083                k: Sk::Str,
5084                req: true,
5085                der: false,
5086                swire: None,
5087            },
5088            Slot {
5089                k: Sk::Vec,
5090                req: true,
5091                der: false,
5092                swire: None,
5093            },
5094        ],
5095        "GEOMETRIC_TOLERANCE" => &[
5096            Slot {
5097                k: Sk::Str,
5098                req: true,
5099                der: false,
5100                swire: None,
5101            },
5102            Slot {
5103                k: Sk::Str,
5104                req: false,
5105                der: false,
5106                swire: None,
5107            },
5108            Slot {
5109                k: Sk::Ref,
5110                req: false,
5111                der: false,
5112                swire: None,
5113            },
5114            Slot {
5115                k: Sk::Ref,
5116                req: true,
5117                der: false,
5118                swire: None,
5119            },
5120        ],
5121        "GEOMETRIC_TOLERANCE_RELATIONSHIP" => &[
5122            Slot {
5123                k: Sk::Str,
5124                req: true,
5125                der: false,
5126                swire: None,
5127            },
5128            Slot {
5129                k: Sk::Str,
5130                req: true,
5131                der: false,
5132                swire: None,
5133            },
5134            Slot {
5135                k: Sk::Ref,
5136                req: true,
5137                der: false,
5138                swire: None,
5139            },
5140            Slot {
5141                k: Sk::Ref,
5142                req: true,
5143                der: false,
5144                swire: None,
5145            },
5146        ],
5147        "GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE" => &[
5148            Slot {
5149                k: Sk::Str,
5150                req: true,
5151                der: false,
5152                swire: None,
5153            },
5154            Slot {
5155                k: Sk::Str,
5156                req: false,
5157                der: false,
5158                swire: None,
5159            },
5160            Slot {
5161                k: Sk::Ref,
5162                req: false,
5163                der: false,
5164                swire: None,
5165            },
5166            Slot {
5167                k: Sk::Ref,
5168                req: true,
5169                der: false,
5170                swire: None,
5171            },
5172            Slot {
5173                k: Sk::Vec,
5174                req: true,
5175                der: false,
5176                swire: None,
5177            },
5178        ],
5179        "GEOMETRIC_TOLERANCE_WITH_DEFINED_AREA_UNIT" => &[
5180            Slot {
5181                k: Sk::Str,
5182                req: true,
5183                der: false,
5184                swire: None,
5185            },
5186            Slot {
5187                k: Sk::Str,
5188                req: false,
5189                der: false,
5190                swire: None,
5191            },
5192            Slot {
5193                k: Sk::Ref,
5194                req: false,
5195                der: false,
5196                swire: None,
5197            },
5198            Slot {
5199                k: Sk::Ref,
5200                req: true,
5201                der: false,
5202                swire: None,
5203            },
5204            Slot {
5205                k: Sk::Ref,
5206                req: true,
5207                der: false,
5208                swire: None,
5209            },
5210            Slot {
5211                k: Sk::Enum,
5212                req: true,
5213                der: false,
5214                swire: None,
5215            },
5216            Slot {
5217                k: Sk::Ref,
5218                req: false,
5219                der: false,
5220                swire: None,
5221            },
5222        ],
5223        "GEOMETRIC_TOLERANCE_WITH_DEFINED_UNIT" => &[
5224            Slot {
5225                k: Sk::Str,
5226                req: true,
5227                der: false,
5228                swire: None,
5229            },
5230            Slot {
5231                k: Sk::Str,
5232                req: false,
5233                der: false,
5234                swire: None,
5235            },
5236            Slot {
5237                k: Sk::Ref,
5238                req: false,
5239                der: false,
5240                swire: None,
5241            },
5242            Slot {
5243                k: Sk::Ref,
5244                req: true,
5245                der: false,
5246                swire: None,
5247            },
5248            Slot {
5249                k: Sk::Ref,
5250                req: true,
5251                der: false,
5252                swire: None,
5253            },
5254        ],
5255        "GEOMETRIC_TOLERANCE_WITH_MAXIMUM_TOLERANCE" => &[
5256            Slot {
5257                k: Sk::Str,
5258                req: true,
5259                der: false,
5260                swire: None,
5261            },
5262            Slot {
5263                k: Sk::Str,
5264                req: false,
5265                der: false,
5266                swire: None,
5267            },
5268            Slot {
5269                k: Sk::Ref,
5270                req: false,
5271                der: false,
5272                swire: None,
5273            },
5274            Slot {
5275                k: Sk::Ref,
5276                req: true,
5277                der: false,
5278                swire: None,
5279            },
5280            Slot {
5281                k: Sk::Vec,
5282                req: true,
5283                der: false,
5284                swire: None,
5285            },
5286            Slot {
5287                k: Sk::Ref,
5288                req: true,
5289                der: false,
5290                swire: None,
5291            },
5292        ],
5293        "GEOMETRIC_TOLERANCE_WITH_MODIFIERS" => &[
5294            Slot {
5295                k: Sk::Str,
5296                req: true,
5297                der: false,
5298                swire: None,
5299            },
5300            Slot {
5301                k: Sk::Str,
5302                req: false,
5303                der: false,
5304                swire: None,
5305            },
5306            Slot {
5307                k: Sk::Ref,
5308                req: false,
5309                der: false,
5310                swire: None,
5311            },
5312            Slot {
5313                k: Sk::Ref,
5314                req: true,
5315                der: false,
5316                swire: None,
5317            },
5318            Slot {
5319                k: Sk::Vec,
5320                req: true,
5321                der: false,
5322                swire: None,
5323            },
5324        ],
5325        "GEOMETRICALLY_BOUNDED_SURFACE_SHAPE_REPRESENTATION" => &[
5326            Slot {
5327                k: Sk::Str,
5328                req: true,
5329                der: false,
5330                swire: None,
5331            },
5332            Slot {
5333                k: Sk::Vec,
5334                req: true,
5335                der: false,
5336                swire: None,
5337            },
5338            Slot {
5339                k: Sk::Ref,
5340                req: true,
5341                der: false,
5342                swire: None,
5343            },
5344        ],
5345        "GEOMETRICALLY_BOUNDED_WIREFRAME_SHAPE_REPRESENTATION" => &[
5346            Slot {
5347                k: Sk::Str,
5348                req: true,
5349                der: false,
5350                swire: None,
5351            },
5352            Slot {
5353                k: Sk::Vec,
5354                req: true,
5355                der: false,
5356                swire: None,
5357            },
5358            Slot {
5359                k: Sk::Ref,
5360                req: true,
5361                der: false,
5362                swire: None,
5363            },
5364        ],
5365        "GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT" => &[
5366            Slot {
5367                k: Sk::Str,
5368                req: true,
5369                der: false,
5370                swire: None,
5371            },
5372            Slot {
5373                k: Sk::Str,
5374                req: true,
5375                der: false,
5376                swire: None,
5377            },
5378            Slot {
5379                k: Sk::Vec,
5380                req: true,
5381                der: false,
5382                swire: None,
5383            },
5384        ],
5385        "GLOBAL_UNIT_ASSIGNED_CONTEXT" => &[
5386            Slot {
5387                k: Sk::Str,
5388                req: true,
5389                der: false,
5390                swire: None,
5391            },
5392            Slot {
5393                k: Sk::Str,
5394                req: true,
5395                der: false,
5396                swire: None,
5397            },
5398            Slot {
5399                k: Sk::Vec,
5400                req: true,
5401                der: false,
5402                swire: None,
5403            },
5404        ],
5405        "GROUP" => &[
5406            Slot {
5407                k: Sk::Str,
5408                req: true,
5409                der: false,
5410                swire: None,
5411            },
5412            Slot {
5413                k: Sk::Str,
5414                req: false,
5415                der: false,
5416                swire: None,
5417            },
5418        ],
5419        "GROUP_ASSIGNMENT" => &[Slot {
5420            k: Sk::Ref,
5421            req: true,
5422            der: false,
5423            swire: None,
5424        }],
5425        "HYPERBOLA" => &[
5426            Slot {
5427                k: Sk::Str,
5428                req: true,
5429                der: false,
5430                swire: None,
5431            },
5432            Slot {
5433                k: Sk::Ref,
5434                req: true,
5435                der: false,
5436                swire: None,
5437            },
5438            Slot {
5439                k: Sk::Real,
5440                req: true,
5441                der: false,
5442                swire: None,
5443            },
5444            Slot {
5445                k: Sk::Real,
5446                req: true,
5447                der: false,
5448                swire: None,
5449            },
5450        ],
5451        "ID_ATTRIBUTE" => &[
5452            Slot {
5453                k: Sk::Str,
5454                req: true,
5455                der: false,
5456                swire: None,
5457            },
5458            Slot {
5459                k: Sk::Ref,
5460                req: true,
5461                der: false,
5462                swire: None,
5463            },
5464        ],
5465        "IDENTIFICATION_ASSIGNMENT" => &[
5466            Slot {
5467                k: Sk::Str,
5468                req: true,
5469                der: false,
5470                swire: None,
5471            },
5472            Slot {
5473                k: Sk::Ref,
5474                req: true,
5475                der: false,
5476                swire: None,
5477            },
5478        ],
5479        "IDENTIFICATION_ROLE" => &[
5480            Slot {
5481                k: Sk::Str,
5482                req: true,
5483                der: false,
5484                swire: None,
5485            },
5486            Slot {
5487                k: Sk::Str,
5488                req: false,
5489                der: false,
5490                swire: None,
5491            },
5492        ],
5493        "INT_LITERAL" => &[Slot {
5494            k: Sk::Int,
5495            req: true,
5496            der: false,
5497            swire: None,
5498        }],
5499        "INTEGER_REPRESENTATION_ITEM" => &[
5500            Slot {
5501                k: Sk::Str,
5502                req: true,
5503                der: false,
5504                swire: None,
5505            },
5506            Slot {
5507                k: Sk::Int,
5508                req: true,
5509                der: false,
5510                swire: None,
5511            },
5512        ],
5513        "INTERSECTION_CURVE" => &[
5514            Slot {
5515                k: Sk::Str,
5516                req: true,
5517                der: false,
5518                swire: None,
5519            },
5520            Slot {
5521                k: Sk::Ref,
5522                req: true,
5523                der: false,
5524                swire: None,
5525            },
5526            Slot {
5527                k: Sk::Vec,
5528                req: true,
5529                der: false,
5530                swire: None,
5531            },
5532            Slot {
5533                k: Sk::Enum,
5534                req: true,
5535                der: false,
5536                swire: None,
5537            },
5538        ],
5539        "INVISIBILITY" => &[Slot {
5540            k: Sk::Vec,
5541            req: true,
5542            der: false,
5543            swire: None,
5544        }],
5545        "ITEM_DEFINED_TRANSFORMATION" => &[
5546            Slot {
5547                k: Sk::Str,
5548                req: true,
5549                der: false,
5550                swire: None,
5551            },
5552            Slot {
5553                k: Sk::Str,
5554                req: false,
5555                der: false,
5556                swire: None,
5557            },
5558            Slot {
5559                k: Sk::Ref,
5560                req: true,
5561                der: false,
5562                swire: None,
5563            },
5564            Slot {
5565                k: Sk::Ref,
5566                req: true,
5567                der: false,
5568                swire: None,
5569            },
5570        ],
5571        "ITEM_IDENTIFIED_REPRESENTATION_USAGE" => &[
5572            Slot {
5573                k: Sk::Str,
5574                req: true,
5575                der: false,
5576                swire: None,
5577            },
5578            Slot {
5579                k: Sk::Str,
5580                req: false,
5581                der: false,
5582                swire: None,
5583            },
5584            Slot {
5585                k: Sk::Ref,
5586                req: true,
5587                der: false,
5588                swire: None,
5589            },
5590            Slot {
5591                k: Sk::Ref,
5592                req: true,
5593                der: false,
5594                swire: None,
5595            },
5596            Slot {
5597                k: Sk::Ref,
5598                req: true,
5599                der: false,
5600                swire: None,
5601            },
5602        ],
5603        "LEADER_CURVE" => &[
5604            Slot {
5605                k: Sk::Str,
5606                req: true,
5607                der: false,
5608                swire: None,
5609            },
5610            Slot {
5611                k: Sk::Vec,
5612                req: true,
5613                der: false,
5614                swire: None,
5615            },
5616            Slot {
5617                k: Sk::Ref,
5618                req: true,
5619                der: false,
5620                swire: None,
5621            },
5622        ],
5623        "LEADER_DIRECTED_CALLOUT" => &[
5624            Slot {
5625                k: Sk::Str,
5626                req: true,
5627                der: false,
5628                swire: None,
5629            },
5630            Slot {
5631                k: Sk::Vec,
5632                req: true,
5633                der: false,
5634                swire: None,
5635            },
5636        ],
5637        "LEADER_TERMINATOR" => &[
5638            Slot {
5639                k: Sk::Str,
5640                req: true,
5641                der: false,
5642                swire: None,
5643            },
5644            Slot {
5645                k: Sk::Vec,
5646                req: true,
5647                der: false,
5648                swire: None,
5649            },
5650            Slot {
5651                k: Sk::Ref,
5652                req: true,
5653                der: false,
5654                swire: None,
5655            },
5656            Slot {
5657                k: Sk::Ref,
5658                req: true,
5659                der: false,
5660                swire: None,
5661            },
5662        ],
5663        "LENGTH_MEASURE_WITH_UNIT" => &[
5664            Slot {
5665                k: Sk::Meas,
5666                req: true,
5667                der: false,
5668                swire: None,
5669            },
5670            Slot {
5671                k: Sk::Ref,
5672                req: true,
5673                der: false,
5674                swire: None,
5675            },
5676        ],
5677        "LENGTH_UNIT" => &[Slot {
5678            k: Sk::Ref,
5679            req: true,
5680            der: false,
5681            swire: None,
5682        }],
5683        "LIMITS_AND_FITS" => &[
5684            Slot {
5685                k: Sk::Str,
5686                req: true,
5687                der: false,
5688                swire: None,
5689            },
5690            Slot {
5691                k: Sk::Str,
5692                req: true,
5693                der: false,
5694                swire: None,
5695            },
5696            Slot {
5697                k: Sk::Str,
5698                req: true,
5699                der: false,
5700                swire: None,
5701            },
5702            Slot {
5703                k: Sk::Str,
5704                req: true,
5705                der: false,
5706                swire: None,
5707            },
5708        ],
5709        "LINE" => &[
5710            Slot {
5711                k: Sk::Str,
5712                req: true,
5713                der: false,
5714                swire: None,
5715            },
5716            Slot {
5717                k: Sk::Ref,
5718                req: true,
5719                der: false,
5720                swire: None,
5721            },
5722            Slot {
5723                k: Sk::Ref,
5724                req: true,
5725                der: false,
5726                swire: None,
5727            },
5728        ],
5729        "LINE_PROFILE_TOLERANCE" => &[
5730            Slot {
5731                k: Sk::Str,
5732                req: true,
5733                der: false,
5734                swire: None,
5735            },
5736            Slot {
5737                k: Sk::Str,
5738                req: false,
5739                der: false,
5740                swire: None,
5741            },
5742            Slot {
5743                k: Sk::Ref,
5744                req: false,
5745                der: false,
5746                swire: None,
5747            },
5748            Slot {
5749                k: Sk::Ref,
5750                req: true,
5751                der: false,
5752                swire: None,
5753            },
5754        ],
5755        "LITERAL_NUMBER" => &[Slot {
5756            k: Sk::Real,
5757            req: true,
5758            der: false,
5759            swire: None,
5760        }],
5761        "LOCAL_TIME" => &[
5762            Slot {
5763                k: Sk::Int,
5764                req: true,
5765                der: false,
5766                swire: None,
5767            },
5768            Slot {
5769                k: Sk::Int,
5770                req: false,
5771                der: false,
5772                swire: None,
5773            },
5774            Slot {
5775                k: Sk::Real,
5776                req: false,
5777                der: false,
5778                swire: None,
5779            },
5780            Slot {
5781                k: Sk::Ref,
5782                req: true,
5783                der: false,
5784                swire: None,
5785            },
5786        ],
5787        "LOOP" => &[Slot {
5788            k: Sk::Str,
5789            req: true,
5790            der: false,
5791            swire: None,
5792        }],
5793        "MAKE_FROM_USAGE_OPTION" => &[
5794            Slot {
5795                k: Sk::Str,
5796                req: true,
5797                der: false,
5798                swire: None,
5799            },
5800            Slot {
5801                k: Sk::Str,
5802                req: true,
5803                der: false,
5804                swire: None,
5805            },
5806            Slot {
5807                k: Sk::Str,
5808                req: false,
5809                der: false,
5810                swire: None,
5811            },
5812            Slot {
5813                k: Sk::Ref,
5814                req: true,
5815                der: false,
5816                swire: None,
5817            },
5818            Slot {
5819                k: Sk::Ref,
5820                req: true,
5821                der: false,
5822                swire: None,
5823            },
5824            Slot {
5825                k: Sk::Int,
5826                req: true,
5827                der: false,
5828                swire: None,
5829            },
5830            Slot {
5831                k: Sk::Str,
5832                req: true,
5833                der: false,
5834                swire: None,
5835            },
5836            Slot {
5837                k: Sk::Ref,
5838                req: true,
5839                der: false,
5840                swire: None,
5841            },
5842        ],
5843        "MANIFOLD_SOLID_BREP" => &[
5844            Slot {
5845                k: Sk::Str,
5846                req: true,
5847                der: false,
5848                swire: None,
5849            },
5850            Slot {
5851                k: Sk::Ref,
5852                req: true,
5853                der: false,
5854                swire: None,
5855            },
5856        ],
5857        "MANIFOLD_SURFACE_SHAPE_REPRESENTATION" => &[
5858            Slot {
5859                k: Sk::Str,
5860                req: true,
5861                der: false,
5862                swire: None,
5863            },
5864            Slot {
5865                k: Sk::Vec,
5866                req: true,
5867                der: false,
5868                swire: None,
5869            },
5870            Slot {
5871                k: Sk::Ref,
5872                req: true,
5873                der: false,
5874                swire: None,
5875            },
5876        ],
5877        "MAPPED_ITEM" => &[
5878            Slot {
5879                k: Sk::Str,
5880                req: true,
5881                der: false,
5882                swire: None,
5883            },
5884            Slot {
5885                k: Sk::Ref,
5886                req: true,
5887                der: false,
5888                swire: None,
5889            },
5890            Slot {
5891                k: Sk::Ref,
5892                req: true,
5893                der: false,
5894                swire: None,
5895            },
5896        ],
5897        "MASS_MEASURE_WITH_UNIT" => &[
5898            Slot {
5899                k: Sk::Meas,
5900                req: true,
5901                der: false,
5902                swire: None,
5903            },
5904            Slot {
5905                k: Sk::Ref,
5906                req: true,
5907                der: false,
5908                swire: None,
5909            },
5910        ],
5911        "MASS_UNIT" => &[Slot {
5912            k: Sk::Ref,
5913            req: true,
5914            der: false,
5915            swire: None,
5916        }],
5917        "MEASURE_QUALIFICATION" => &[
5918            Slot {
5919                k: Sk::Str,
5920                req: true,
5921                der: false,
5922                swire: None,
5923            },
5924            Slot {
5925                k: Sk::Str,
5926                req: true,
5927                der: false,
5928                swire: None,
5929            },
5930            Slot {
5931                k: Sk::Ref,
5932                req: true,
5933                der: false,
5934                swire: None,
5935            },
5936            Slot {
5937                k: Sk::Vec,
5938                req: true,
5939                der: false,
5940                swire: None,
5941            },
5942        ],
5943        "MEASURE_REPRESENTATION_ITEM" => &[
5944            Slot {
5945                k: Sk::Str,
5946                req: true,
5947                der: false,
5948                swire: None,
5949            },
5950            Slot {
5951                k: Sk::Meas,
5952                req: true,
5953                der: false,
5954                swire: None,
5955            },
5956            Slot {
5957                k: Sk::Ref,
5958                req: true,
5959                der: false,
5960                swire: None,
5961            },
5962        ],
5963        "MEASURE_WITH_UNIT" => &[
5964            Slot {
5965                k: Sk::Meas,
5966                req: true,
5967                der: false,
5968                swire: None,
5969            },
5970            Slot {
5971                k: Sk::Ref,
5972                req: true,
5973                der: false,
5974                swire: None,
5975            },
5976        ],
5977        "MECHANICAL_CONTEXT" => &[
5978            Slot {
5979                k: Sk::Str,
5980                req: true,
5981                der: false,
5982                swire: None,
5983            },
5984            Slot {
5985                k: Sk::Ref,
5986                req: true,
5987                der: false,
5988                swire: None,
5989            },
5990            Slot {
5991                k: Sk::Str,
5992                req: true,
5993                der: false,
5994                swire: None,
5995            },
5996        ],
5997        "MECHANICAL_DESIGN_AND_DRAUGHTING_RELATIONSHIP" => &[
5998            Slot {
5999                k: Sk::Str,
6000                req: true,
6001                der: false,
6002                swire: None,
6003            },
6004            Slot {
6005                k: Sk::Str,
6006                req: false,
6007                der: false,
6008                swire: None,
6009            },
6010            Slot {
6011                k: Sk::Ref,
6012                req: true,
6013                der: false,
6014                swire: None,
6015            },
6016            Slot {
6017                k: Sk::Ref,
6018                req: true,
6019                der: false,
6020                swire: None,
6021            },
6022        ],
6023        "MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION" => &[
6024            Slot {
6025                k: Sk::Str,
6026                req: true,
6027                der: false,
6028                swire: None,
6029            },
6030            Slot {
6031                k: Sk::Vec,
6032                req: true,
6033                der: false,
6034                swire: None,
6035            },
6036            Slot {
6037                k: Sk::Ref,
6038                req: true,
6039                der: false,
6040                swire: None,
6041            },
6042        ],
6043        "MECHANICAL_DESIGN_PRESENTATION_REPRESENTATION_WITH_DRAUGHTING" => &[
6044            Slot {
6045                k: Sk::Str,
6046                req: true,
6047                der: false,
6048                swire: None,
6049            },
6050            Slot {
6051                k: Sk::Vec,
6052                req: true,
6053                der: false,
6054                swire: None,
6055            },
6056            Slot {
6057                k: Sk::Ref,
6058                req: true,
6059                der: false,
6060                swire: None,
6061            },
6062        ],
6063        "MECHANICAL_DESIGN_SHADED_PRESENTATION_REPRESENTATION" => &[
6064            Slot {
6065                k: Sk::Str,
6066                req: true,
6067                der: false,
6068                swire: None,
6069            },
6070            Slot {
6071                k: Sk::Vec,
6072                req: true,
6073                der: false,
6074                swire: None,
6075            },
6076            Slot {
6077                k: Sk::Ref,
6078                req: true,
6079                der: false,
6080                swire: None,
6081            },
6082        ],
6083        "MODEL_GEOMETRIC_VIEW" => &[
6084            Slot {
6085                k: Sk::Str,
6086                req: true,
6087                der: false,
6088                swire: None,
6089            },
6090            Slot {
6091                k: Sk::Str,
6092                req: false,
6093                der: false,
6094                swire: None,
6095            },
6096            Slot {
6097                k: Sk::Ref,
6098                req: true,
6099                der: false,
6100                swire: None,
6101            },
6102            Slot {
6103                k: Sk::Ref,
6104                req: true,
6105                der: false,
6106                swire: None,
6107            },
6108        ],
6109        "MODIFIED_GEOMETRIC_TOLERANCE" => &[
6110            Slot {
6111                k: Sk::Str,
6112                req: true,
6113                der: false,
6114                swire: None,
6115            },
6116            Slot {
6117                k: Sk::Str,
6118                req: false,
6119                der: false,
6120                swire: None,
6121            },
6122            Slot {
6123                k: Sk::Ref,
6124                req: false,
6125                der: false,
6126                swire: None,
6127            },
6128            Slot {
6129                k: Sk::Ref,
6130                req: true,
6131                der: false,
6132                swire: None,
6133            },
6134            Slot {
6135                k: Sk::Enum,
6136                req: true,
6137                der: false,
6138                swire: None,
6139            },
6140        ],
6141        "NAME_ATTRIBUTE" => &[
6142            Slot {
6143                k: Sk::Str,
6144                req: true,
6145                der: false,
6146                swire: None,
6147            },
6148            Slot {
6149                k: Sk::Ref,
6150                req: true,
6151                der: false,
6152                swire: None,
6153            },
6154        ],
6155        "NAMED_UNIT" => &[Slot {
6156            k: Sk::Ref,
6157            req: true,
6158            der: false,
6159            swire: None,
6160        }],
6161        "NEXT_ASSEMBLY_USAGE_OCCURRENCE" => &[
6162            Slot {
6163                k: Sk::Str,
6164                req: true,
6165                der: false,
6166                swire: None,
6167            },
6168            Slot {
6169                k: Sk::Str,
6170                req: true,
6171                der: false,
6172                swire: None,
6173            },
6174            Slot {
6175                k: Sk::Str,
6176                req: false,
6177                der: false,
6178                swire: None,
6179            },
6180            Slot {
6181                k: Sk::Ref,
6182                req: true,
6183                der: false,
6184                swire: None,
6185            },
6186            Slot {
6187                k: Sk::Ref,
6188                req: true,
6189                der: false,
6190                swire: None,
6191            },
6192            Slot {
6193                k: Sk::Str,
6194                req: false,
6195                der: false,
6196                swire: None,
6197            },
6198        ],
6199        "NUMERIC_EXPRESSION" => &[],
6200        "OBJECT_ROLE" => &[
6201            Slot {
6202                k: Sk::Str,
6203                req: true,
6204                der: false,
6205                swire: None,
6206            },
6207            Slot {
6208                k: Sk::Str,
6209                req: false,
6210                der: false,
6211                swire: None,
6212            },
6213        ],
6214        "OFFSET_SURFACE" => &[
6215            Slot {
6216                k: Sk::Str,
6217                req: true,
6218                der: false,
6219                swire: None,
6220            },
6221            Slot {
6222                k: Sk::Ref,
6223                req: true,
6224                der: false,
6225                swire: None,
6226            },
6227            Slot {
6228                k: Sk::Real,
6229                req: true,
6230                der: false,
6231                swire: None,
6232            },
6233            Slot {
6234                k: Sk::Log,
6235                req: true,
6236                der: false,
6237                swire: None,
6238            },
6239        ],
6240        "ONE_DIRECTION_REPEAT_FACTOR" => &[
6241            Slot {
6242                k: Sk::Str,
6243                req: true,
6244                der: false,
6245                swire: None,
6246            },
6247            Slot {
6248                k: Sk::Ref,
6249                req: true,
6250                der: false,
6251                swire: None,
6252            },
6253        ],
6254        "OPEN_SHELL" => &[
6255            Slot {
6256                k: Sk::Str,
6257                req: true,
6258                der: false,
6259                swire: None,
6260            },
6261            Slot {
6262                k: Sk::Vec,
6263                req: true,
6264                der: false,
6265                swire: None,
6266            },
6267        ],
6268        "ORGANIZATION" => &[
6269            Slot {
6270                k: Sk::Str,
6271                req: false,
6272                der: false,
6273                swire: None,
6274            },
6275            Slot {
6276                k: Sk::Str,
6277                req: true,
6278                der: false,
6279                swire: None,
6280            },
6281            Slot {
6282                k: Sk::Str,
6283                req: false,
6284                der: false,
6285                swire: None,
6286            },
6287        ],
6288        "ORGANIZATION_RELATIONSHIP" => &[
6289            Slot {
6290                k: Sk::Str,
6291                req: true,
6292                der: false,
6293                swire: None,
6294            },
6295            Slot {
6296                k: Sk::Str,
6297                req: false,
6298                der: false,
6299                swire: None,
6300            },
6301            Slot {
6302                k: Sk::Ref,
6303                req: true,
6304                der: false,
6305                swire: None,
6306            },
6307            Slot {
6308                k: Sk::Ref,
6309                req: true,
6310                der: false,
6311                swire: None,
6312            },
6313        ],
6314        "ORGANIZATION_ROLE" => &[Slot {
6315            k: Sk::Str,
6316            req: true,
6317            der: false,
6318            swire: None,
6319        }],
6320        "ORGANIZATION_TYPE" => &[
6321            Slot {
6322                k: Sk::Str,
6323                req: true,
6324                der: false,
6325                swire: None,
6326            },
6327            Slot {
6328                k: Sk::Str,
6329                req: true,
6330                der: false,
6331                swire: None,
6332            },
6333            Slot {
6334                k: Sk::Str,
6335                req: false,
6336                der: false,
6337                swire: None,
6338            },
6339        ],
6340        "ORGANIZATION_TYPE_ROLE" => &[
6341            Slot {
6342                k: Sk::Str,
6343                req: true,
6344                der: false,
6345                swire: None,
6346            },
6347            Slot {
6348                k: Sk::Str,
6349                req: true,
6350                der: false,
6351                swire: None,
6352            },
6353            Slot {
6354                k: Sk::Str,
6355                req: false,
6356                der: false,
6357                swire: None,
6358            },
6359        ],
6360        "ORGANIZATIONAL_ADDRESS" => &[
6361            Slot {
6362                k: Sk::Str,
6363                req: false,
6364                der: false,
6365                swire: None,
6366            },
6367            Slot {
6368                k: Sk::Str,
6369                req: false,
6370                der: false,
6371                swire: None,
6372            },
6373            Slot {
6374                k: Sk::Str,
6375                req: false,
6376                der: false,
6377                swire: None,
6378            },
6379            Slot {
6380                k: Sk::Str,
6381                req: false,
6382                der: false,
6383                swire: None,
6384            },
6385            Slot {
6386                k: Sk::Str,
6387                req: false,
6388                der: false,
6389                swire: None,
6390            },
6391            Slot {
6392                k: Sk::Str,
6393                req: false,
6394                der: false,
6395                swire: None,
6396            },
6397            Slot {
6398                k: Sk::Str,
6399                req: false,
6400                der: false,
6401                swire: None,
6402            },
6403            Slot {
6404                k: Sk::Str,
6405                req: false,
6406                der: false,
6407                swire: None,
6408            },
6409            Slot {
6410                k: Sk::Str,
6411                req: false,
6412                der: false,
6413                swire: None,
6414            },
6415            Slot {
6416                k: Sk::Str,
6417                req: false,
6418                der: false,
6419                swire: None,
6420            },
6421            Slot {
6422                k: Sk::Str,
6423                req: false,
6424                der: false,
6425                swire: None,
6426            },
6427            Slot {
6428                k: Sk::Str,
6429                req: false,
6430                der: false,
6431                swire: None,
6432            },
6433            Slot {
6434                k: Sk::Vec,
6435                req: true,
6436                der: false,
6437                swire: None,
6438            },
6439            Slot {
6440                k: Sk::Str,
6441                req: false,
6442                der: false,
6443                swire: None,
6444            },
6445        ],
6446        "ORGANIZATIONAL_PROJECT" => &[
6447            Slot {
6448                k: Sk::Str,
6449                req: true,
6450                der: false,
6451                swire: None,
6452            },
6453            Slot {
6454                k: Sk::Str,
6455                req: false,
6456                der: false,
6457                swire: None,
6458            },
6459            Slot {
6460                k: Sk::Vec,
6461                req: true,
6462                der: false,
6463                swire: None,
6464            },
6465        ],
6466        "ORGANIZATIONAL_PROJECT_RELATIONSHIP" => &[
6467            Slot {
6468                k: Sk::Str,
6469                req: true,
6470                der: false,
6471                swire: None,
6472            },
6473            Slot {
6474                k: Sk::Str,
6475                req: false,
6476                der: false,
6477                swire: None,
6478            },
6479            Slot {
6480                k: Sk::Ref,
6481                req: true,
6482                der: false,
6483                swire: None,
6484            },
6485            Slot {
6486                k: Sk::Ref,
6487                req: true,
6488                der: false,
6489                swire: None,
6490            },
6491        ],
6492        "ORGANIZATIONAL_PROJECT_ROLE" => &[
6493            Slot {
6494                k: Sk::Str,
6495                req: true,
6496                der: false,
6497                swire: None,
6498            },
6499            Slot {
6500                k: Sk::Str,
6501                req: false,
6502                der: false,
6503                swire: None,
6504            },
6505        ],
6506        "ORIENTED_CLOSED_SHELL" => &[
6507            Slot {
6508                k: Sk::Str,
6509                req: true,
6510                der: false,
6511                swire: None,
6512            },
6513            Slot {
6514                k: Sk::Vec,
6515                req: true,
6516                der: true,
6517                swire: None,
6518            },
6519            Slot {
6520                k: Sk::Ref,
6521                req: true,
6522                der: false,
6523                swire: None,
6524            },
6525            Slot {
6526                k: Sk::Bool,
6527                req: true,
6528                der: false,
6529                swire: None,
6530            },
6531        ],
6532        "ORIENTED_EDGE" => &[
6533            Slot {
6534                k: Sk::Str,
6535                req: true,
6536                der: false,
6537                swire: None,
6538            },
6539            Slot {
6540                k: Sk::Ref,
6541                req: true,
6542                der: true,
6543                swire: None,
6544            },
6545            Slot {
6546                k: Sk::Ref,
6547                req: true,
6548                der: true,
6549                swire: None,
6550            },
6551            Slot {
6552                k: Sk::Ref,
6553                req: true,
6554                der: false,
6555                swire: None,
6556            },
6557            Slot {
6558                k: Sk::Bool,
6559                req: true,
6560                der: false,
6561                swire: None,
6562            },
6563        ],
6564        "OVER_RIDING_STYLED_ITEM" => &[
6565            Slot {
6566                k: Sk::Str,
6567                req: true,
6568                der: false,
6569                swire: None,
6570            },
6571            Slot {
6572                k: Sk::Vec,
6573                req: true,
6574                der: false,
6575                swire: None,
6576            },
6577            Slot {
6578                k: Sk::Ref,
6579                req: true,
6580                der: false,
6581                swire: None,
6582            },
6583            Slot {
6584                k: Sk::Ref,
6585                req: true,
6586                der: false,
6587                swire: None,
6588            },
6589        ],
6590        "PARALLELISM_TOLERANCE" => &[
6591            Slot {
6592                k: Sk::Str,
6593                req: true,
6594                der: false,
6595                swire: None,
6596            },
6597            Slot {
6598                k: Sk::Str,
6599                req: false,
6600                der: false,
6601                swire: None,
6602            },
6603            Slot {
6604                k: Sk::Ref,
6605                req: false,
6606                der: false,
6607                swire: None,
6608            },
6609            Slot {
6610                k: Sk::Ref,
6611                req: true,
6612                der: false,
6613                swire: None,
6614            },
6615            Slot {
6616                k: Sk::Vec,
6617                req: true,
6618                der: false,
6619                swire: None,
6620            },
6621        ],
6622        "PARAMETRIC_REPRESENTATION_CONTEXT" => &[
6623            Slot {
6624                k: Sk::Str,
6625                req: true,
6626                der: false,
6627                swire: None,
6628            },
6629            Slot {
6630                k: Sk::Str,
6631                req: true,
6632                der: false,
6633                swire: None,
6634            },
6635        ],
6636        "PATH" => &[
6637            Slot {
6638                k: Sk::Str,
6639                req: true,
6640                der: false,
6641                swire: None,
6642            },
6643            Slot {
6644                k: Sk::Vec,
6645                req: true,
6646                der: false,
6647                swire: None,
6648            },
6649        ],
6650        "PCURVE" => &[
6651            Slot {
6652                k: Sk::Str,
6653                req: true,
6654                der: false,
6655                swire: None,
6656            },
6657            Slot {
6658                k: Sk::Ref,
6659                req: true,
6660                der: false,
6661                swire: None,
6662            },
6663            Slot {
6664                k: Sk::Ref,
6665                req: true,
6666                der: false,
6667                swire: None,
6668            },
6669        ],
6670        "PERPENDICULARITY_TOLERANCE" => &[
6671            Slot {
6672                k: Sk::Str,
6673                req: true,
6674                der: false,
6675                swire: None,
6676            },
6677            Slot {
6678                k: Sk::Str,
6679                req: false,
6680                der: false,
6681                swire: None,
6682            },
6683            Slot {
6684                k: Sk::Ref,
6685                req: false,
6686                der: false,
6687                swire: None,
6688            },
6689            Slot {
6690                k: Sk::Ref,
6691                req: true,
6692                der: false,
6693                swire: None,
6694            },
6695            Slot {
6696                k: Sk::Vec,
6697                req: true,
6698                der: false,
6699                swire: None,
6700            },
6701        ],
6702        "PERSON" => &[
6703            Slot {
6704                k: Sk::Str,
6705                req: true,
6706                der: false,
6707                swire: None,
6708            },
6709            Slot {
6710                k: Sk::Str,
6711                req: false,
6712                der: false,
6713                swire: None,
6714            },
6715            Slot {
6716                k: Sk::Str,
6717                req: false,
6718                der: false,
6719                swire: None,
6720            },
6721            Slot {
6722                k: Sk::Vec,
6723                req: false,
6724                der: false,
6725                swire: None,
6726            },
6727            Slot {
6728                k: Sk::Vec,
6729                req: false,
6730                der: false,
6731                swire: None,
6732            },
6733            Slot {
6734                k: Sk::Vec,
6735                req: false,
6736                der: false,
6737                swire: None,
6738            },
6739        ],
6740        "PERSON_AND_ORGANIZATION" => &[
6741            Slot {
6742                k: Sk::Ref,
6743                req: true,
6744                der: false,
6745                swire: None,
6746            },
6747            Slot {
6748                k: Sk::Ref,
6749                req: true,
6750                der: false,
6751                swire: None,
6752            },
6753        ],
6754        "PERSON_AND_ORGANIZATION_ADDRESS" => &[
6755            Slot {
6756                k: Sk::Str,
6757                req: false,
6758                der: false,
6759                swire: None,
6760            },
6761            Slot {
6762                k: Sk::Str,
6763                req: false,
6764                der: false,
6765                swire: None,
6766            },
6767            Slot {
6768                k: Sk::Str,
6769                req: false,
6770                der: false,
6771                swire: None,
6772            },
6773            Slot {
6774                k: Sk::Str,
6775                req: false,
6776                der: false,
6777                swire: None,
6778            },
6779            Slot {
6780                k: Sk::Str,
6781                req: false,
6782                der: false,
6783                swire: None,
6784            },
6785            Slot {
6786                k: Sk::Str,
6787                req: false,
6788                der: false,
6789                swire: None,
6790            },
6791            Slot {
6792                k: Sk::Str,
6793                req: false,
6794                der: false,
6795                swire: None,
6796            },
6797            Slot {
6798                k: Sk::Str,
6799                req: false,
6800                der: false,
6801                swire: None,
6802            },
6803            Slot {
6804                k: Sk::Str,
6805                req: false,
6806                der: false,
6807                swire: None,
6808            },
6809            Slot {
6810                k: Sk::Str,
6811                req: false,
6812                der: false,
6813                swire: None,
6814            },
6815            Slot {
6816                k: Sk::Str,
6817                req: false,
6818                der: false,
6819                swire: None,
6820            },
6821            Slot {
6822                k: Sk::Str,
6823                req: false,
6824                der: false,
6825                swire: None,
6826            },
6827            Slot {
6828                k: Sk::Vec,
6829                req: true,
6830                der: false,
6831                swire: None,
6832            },
6833            Slot {
6834                k: Sk::Str,
6835                req: false,
6836                der: false,
6837                swire: None,
6838            },
6839            Slot {
6840                k: Sk::Vec,
6841                req: true,
6842                der: false,
6843                swire: None,
6844            },
6845            Slot {
6846                k: Sk::Str,
6847                req: false,
6848                der: false,
6849                swire: None,
6850            },
6851        ],
6852        "PERSON_AND_ORGANIZATION_ASSIGNMENT" => &[
6853            Slot {
6854                k: Sk::Ref,
6855                req: true,
6856                der: false,
6857                swire: None,
6858            },
6859            Slot {
6860                k: Sk::Ref,
6861                req: true,
6862                der: false,
6863                swire: None,
6864            },
6865        ],
6866        "PERSON_AND_ORGANIZATION_ROLE" => &[Slot {
6867            k: Sk::Str,
6868            req: true,
6869            der: false,
6870            swire: None,
6871        }],
6872        "PERSONAL_ADDRESS" => &[
6873            Slot {
6874                k: Sk::Str,
6875                req: false,
6876                der: false,
6877                swire: None,
6878            },
6879            Slot {
6880                k: Sk::Str,
6881                req: false,
6882                der: false,
6883                swire: None,
6884            },
6885            Slot {
6886                k: Sk::Str,
6887                req: false,
6888                der: false,
6889                swire: None,
6890            },
6891            Slot {
6892                k: Sk::Str,
6893                req: false,
6894                der: false,
6895                swire: None,
6896            },
6897            Slot {
6898                k: Sk::Str,
6899                req: false,
6900                der: false,
6901                swire: None,
6902            },
6903            Slot {
6904                k: Sk::Str,
6905                req: false,
6906                der: false,
6907                swire: None,
6908            },
6909            Slot {
6910                k: Sk::Str,
6911                req: false,
6912                der: false,
6913                swire: None,
6914            },
6915            Slot {
6916                k: Sk::Str,
6917                req: false,
6918                der: false,
6919                swire: None,
6920            },
6921            Slot {
6922                k: Sk::Str,
6923                req: false,
6924                der: false,
6925                swire: None,
6926            },
6927            Slot {
6928                k: Sk::Str,
6929                req: false,
6930                der: false,
6931                swire: None,
6932            },
6933            Slot {
6934                k: Sk::Str,
6935                req: false,
6936                der: false,
6937                swire: None,
6938            },
6939            Slot {
6940                k: Sk::Str,
6941                req: false,
6942                der: false,
6943                swire: None,
6944            },
6945            Slot {
6946                k: Sk::Vec,
6947                req: true,
6948                der: false,
6949                swire: None,
6950            },
6951            Slot {
6952                k: Sk::Str,
6953                req: false,
6954                der: false,
6955                swire: None,
6956            },
6957        ],
6958        "PLACED_DATUM_TARGET_FEATURE" => &[
6959            Slot {
6960                k: Sk::Str,
6961                req: true,
6962                der: false,
6963                swire: None,
6964            },
6965            Slot {
6966                k: Sk::Str,
6967                req: false,
6968                der: false,
6969                swire: None,
6970            },
6971            Slot {
6972                k: Sk::Ref,
6973                req: true,
6974                der: false,
6975                swire: None,
6976            },
6977            Slot {
6978                k: Sk::Log,
6979                req: true,
6980                der: false,
6981                swire: None,
6982            },
6983            Slot {
6984                k: Sk::Str,
6985                req: true,
6986                der: false,
6987                swire: None,
6988            },
6989        ],
6990        "PLACEMENT" => &[
6991            Slot {
6992                k: Sk::Str,
6993                req: true,
6994                der: false,
6995                swire: None,
6996            },
6997            Slot {
6998                k: Sk::Ref,
6999                req: true,
7000                der: false,
7001                swire: None,
7002            },
7003        ],
7004        "PLANAR_BOX" => &[
7005            Slot {
7006                k: Sk::Str,
7007                req: true,
7008                der: false,
7009                swire: None,
7010            },
7011            Slot {
7012                k: Sk::Real,
7013                req: true,
7014                der: false,
7015                swire: None,
7016            },
7017            Slot {
7018                k: Sk::Real,
7019                req: true,
7020                der: false,
7021                swire: None,
7022            },
7023            Slot {
7024                k: Sk::Ref,
7025                req: true,
7026                der: false,
7027                swire: None,
7028            },
7029        ],
7030        "PLANAR_EXTENT" => &[
7031            Slot {
7032                k: Sk::Str,
7033                req: true,
7034                der: false,
7035                swire: None,
7036            },
7037            Slot {
7038                k: Sk::Real,
7039                req: true,
7040                der: false,
7041                swire: None,
7042            },
7043            Slot {
7044                k: Sk::Real,
7045                req: true,
7046                der: false,
7047                swire: None,
7048            },
7049        ],
7050        "PLANE" => &[
7051            Slot {
7052                k: Sk::Str,
7053                req: true,
7054                der: false,
7055                swire: None,
7056            },
7057            Slot {
7058                k: Sk::Ref,
7059                req: true,
7060                der: false,
7061                swire: None,
7062            },
7063        ],
7064        "PLANE_ANGLE_MEASURE_WITH_UNIT" => &[
7065            Slot {
7066                k: Sk::Meas,
7067                req: true,
7068                der: false,
7069                swire: None,
7070            },
7071            Slot {
7072                k: Sk::Ref,
7073                req: true,
7074                der: false,
7075                swire: None,
7076            },
7077        ],
7078        "PLANE_ANGLE_UNIT" => &[Slot {
7079            k: Sk::Ref,
7080            req: true,
7081            der: false,
7082            swire: None,
7083        }],
7084        "PLUS_MINUS_TOLERANCE" => &[
7085            Slot {
7086                k: Sk::Ref,
7087                req: true,
7088                der: false,
7089                swire: None,
7090            },
7091            Slot {
7092                k: Sk::Ref,
7093                req: true,
7094                der: false,
7095                swire: None,
7096            },
7097        ],
7098        "POINT" => &[Slot {
7099            k: Sk::Str,
7100            req: true,
7101            der: false,
7102            swire: None,
7103        }],
7104        "POINT_STYLE" => &[
7105            Slot {
7106                k: Sk::Str,
7107                req: true,
7108                der: false,
7109                swire: None,
7110            },
7111            Slot {
7112                k: Sk::Ref,
7113                req: false,
7114                der: false,
7115                swire: None,
7116            },
7117            Slot {
7118                k: Sk::Ref,
7119                req: false,
7120                der: false,
7121                swire: None,
7122            },
7123            Slot {
7124                k: Sk::Ref,
7125                req: false,
7126                der: false,
7127                swire: None,
7128            },
7129        ],
7130        "POLY_LOOP" => &[
7131            Slot {
7132                k: Sk::Str,
7133                req: true,
7134                der: false,
7135                swire: None,
7136            },
7137            Slot {
7138                k: Sk::Vec,
7139                req: true,
7140                der: false,
7141                swire: None,
7142            },
7143        ],
7144        "POLYLINE" => &[
7145            Slot {
7146                k: Sk::Str,
7147                req: true,
7148                der: false,
7149                swire: None,
7150            },
7151            Slot {
7152                k: Sk::Vec,
7153                req: true,
7154                der: false,
7155                swire: None,
7156            },
7157        ],
7158        "POSITION_TOLERANCE" => &[
7159            Slot {
7160                k: Sk::Str,
7161                req: true,
7162                der: false,
7163                swire: None,
7164            },
7165            Slot {
7166                k: Sk::Str,
7167                req: false,
7168                der: false,
7169                swire: None,
7170            },
7171            Slot {
7172                k: Sk::Ref,
7173                req: false,
7174                der: false,
7175                swire: None,
7176            },
7177            Slot {
7178                k: Sk::Ref,
7179                req: true,
7180                der: false,
7181                swire: None,
7182            },
7183        ],
7184        "PRE_DEFINED_CHARACTER_GLYPH" => &[Slot {
7185            k: Sk::Str,
7186            req: true,
7187            der: false,
7188            swire: None,
7189        }],
7190        "PRE_DEFINED_COLOUR" => &[Slot {
7191            k: Sk::Str,
7192            req: true,
7193            der: false,
7194            swire: None,
7195        }],
7196        "PRE_DEFINED_CURVE_FONT" => &[Slot {
7197            k: Sk::Str,
7198            req: true,
7199            der: false,
7200            swire: None,
7201        }],
7202        "PRE_DEFINED_ITEM" => &[Slot {
7203            k: Sk::Str,
7204            req: true,
7205            der: false,
7206            swire: None,
7207        }],
7208        "PRE_DEFINED_MARKER" => &[Slot {
7209            k: Sk::Str,
7210            req: true,
7211            der: false,
7212            swire: None,
7213        }],
7214        "PRE_DEFINED_POINT_MARKER_SYMBOL" => &[Slot {
7215            k: Sk::Str,
7216            req: true,
7217            der: false,
7218            swire: None,
7219        }],
7220        "PRE_DEFINED_PRESENTATION_STYLE" => &[Slot {
7221            k: Sk::Str,
7222            req: true,
7223            der: false,
7224            swire: None,
7225        }],
7226        "PRE_DEFINED_SURFACE_SIDE_STYLE" => &[Slot {
7227            k: Sk::Str,
7228            req: true,
7229            der: false,
7230            swire: None,
7231        }],
7232        "PRE_DEFINED_SYMBOL" => &[Slot {
7233            k: Sk::Str,
7234            req: true,
7235            der: false,
7236            swire: None,
7237        }],
7238        "PRE_DEFINED_TERMINATOR_SYMBOL" => &[Slot {
7239            k: Sk::Str,
7240            req: true,
7241            der: false,
7242            swire: None,
7243        }],
7244        "PRE_DEFINED_TEXT_FONT" => &[Slot {
7245            k: Sk::Str,
7246            req: true,
7247            der: false,
7248            swire: None,
7249        }],
7250        "PRE_DEFINED_TILE" => &[Slot {
7251            k: Sk::Str,
7252            req: true,
7253            der: false,
7254            swire: None,
7255        }],
7256        "PRECISION_QUALIFIER" => &[Slot {
7257            k: Sk::Int,
7258            req: true,
7259            der: false,
7260            swire: None,
7261        }],
7262        "PRESENTATION_AREA" => &[
7263            Slot {
7264                k: Sk::Str,
7265                req: true,
7266                der: false,
7267                swire: None,
7268            },
7269            Slot {
7270                k: Sk::Vec,
7271                req: true,
7272                der: false,
7273                swire: None,
7274            },
7275            Slot {
7276                k: Sk::Ref,
7277                req: true,
7278                der: false,
7279                swire: None,
7280            },
7281        ],
7282        "PRESENTATION_LAYER_ASSIGNMENT" => &[
7283            Slot {
7284                k: Sk::Str,
7285                req: true,
7286                der: false,
7287                swire: None,
7288            },
7289            Slot {
7290                k: Sk::Str,
7291                req: true,
7292                der: false,
7293                swire: None,
7294            },
7295            Slot {
7296                k: Sk::Vec,
7297                req: true,
7298                der: false,
7299                swire: None,
7300            },
7301        ],
7302        "PRESENTATION_REPRESENTATION" => &[
7303            Slot {
7304                k: Sk::Str,
7305                req: true,
7306                der: false,
7307                swire: None,
7308            },
7309            Slot {
7310                k: Sk::Vec,
7311                req: true,
7312                der: false,
7313                swire: None,
7314            },
7315            Slot {
7316                k: Sk::Ref,
7317                req: true,
7318                der: false,
7319                swire: None,
7320            },
7321        ],
7322        "PRESENTATION_SET" => &[],
7323        "PRESENTATION_SIZE" => &[
7324            Slot {
7325                k: Sk::Ref,
7326                req: true,
7327                der: false,
7328                swire: None,
7329            },
7330            Slot {
7331                k: Sk::Ref,
7332                req: true,
7333                der: false,
7334                swire: None,
7335            },
7336        ],
7337        "PRESENTATION_STYLE_ASSIGNMENT" => &[Slot {
7338            k: Sk::Vec,
7339            req: true,
7340            der: false,
7341            swire: None,
7342        }],
7343        "PRESENTATION_STYLE_BY_CONTEXT" => &[
7344            Slot {
7345                k: Sk::Vec,
7346                req: true,
7347                der: false,
7348                swire: None,
7349            },
7350            Slot {
7351                k: Sk::Ref,
7352                req: true,
7353                der: false,
7354                swire: None,
7355            },
7356        ],
7357        "PRESENTATION_VIEW" => &[
7358            Slot {
7359                k: Sk::Str,
7360                req: true,
7361                der: false,
7362                swire: None,
7363            },
7364            Slot {
7365                k: Sk::Vec,
7366                req: true,
7367                der: false,
7368                swire: None,
7369            },
7370            Slot {
7371                k: Sk::Ref,
7372                req: true,
7373                der: false,
7374                swire: None,
7375            },
7376        ],
7377        "PRESENTED_ITEM" => &[],
7378        "PRESENTED_ITEM_REPRESENTATION" => &[
7379            Slot {
7380                k: Sk::Ref,
7381                req: true,
7382                der: false,
7383                swire: None,
7384            },
7385            Slot {
7386                k: Sk::Ref,
7387                req: true,
7388                der: false,
7389                swire: None,
7390            },
7391        ],
7392        "PRODUCT" => &[
7393            Slot {
7394                k: Sk::Str,
7395                req: true,
7396                der: false,
7397                swire: None,
7398            },
7399            Slot {
7400                k: Sk::Str,
7401                req: true,
7402                der: false,
7403                swire: None,
7404            },
7405            Slot {
7406                k: Sk::Str,
7407                req: false,
7408                der: false,
7409                swire: None,
7410            },
7411            Slot {
7412                k: Sk::Vec,
7413                req: true,
7414                der: false,
7415                swire: None,
7416            },
7417        ],
7418        "PRODUCT_CATEGORY" => &[
7419            Slot {
7420                k: Sk::Str,
7421                req: true,
7422                der: false,
7423                swire: None,
7424            },
7425            Slot {
7426                k: Sk::Str,
7427                req: false,
7428                der: false,
7429                swire: None,
7430            },
7431        ],
7432        "PRODUCT_CATEGORY_RELATIONSHIP" => &[
7433            Slot {
7434                k: Sk::Str,
7435                req: true,
7436                der: false,
7437                swire: None,
7438            },
7439            Slot {
7440                k: Sk::Str,
7441                req: false,
7442                der: false,
7443                swire: None,
7444            },
7445            Slot {
7446                k: Sk::Ref,
7447                req: true,
7448                der: false,
7449                swire: None,
7450            },
7451            Slot {
7452                k: Sk::Ref,
7453                req: true,
7454                der: false,
7455                swire: None,
7456            },
7457        ],
7458        "PRODUCT_CONCEPT" => &[
7459            Slot {
7460                k: Sk::Str,
7461                req: true,
7462                der: false,
7463                swire: None,
7464            },
7465            Slot {
7466                k: Sk::Str,
7467                req: true,
7468                der: false,
7469                swire: None,
7470            },
7471            Slot {
7472                k: Sk::Str,
7473                req: false,
7474                der: false,
7475                swire: None,
7476            },
7477            Slot {
7478                k: Sk::Ref,
7479                req: true,
7480                der: false,
7481                swire: None,
7482            },
7483        ],
7484        "PRODUCT_CONCEPT_CONTEXT" => &[
7485            Slot {
7486                k: Sk::Str,
7487                req: true,
7488                der: false,
7489                swire: None,
7490            },
7491            Slot {
7492                k: Sk::Ref,
7493                req: true,
7494                der: false,
7495                swire: None,
7496            },
7497            Slot {
7498                k: Sk::Str,
7499                req: true,
7500                der: false,
7501                swire: None,
7502            },
7503        ],
7504        "PRODUCT_CONCEPT_FEATURE" => &[
7505            Slot {
7506                k: Sk::Str,
7507                req: true,
7508                der: false,
7509                swire: None,
7510            },
7511            Slot {
7512                k: Sk::Str,
7513                req: true,
7514                der: false,
7515                swire: None,
7516            },
7517            Slot {
7518                k: Sk::Str,
7519                req: false,
7520                der: false,
7521                swire: None,
7522            },
7523        ],
7524        "PRODUCT_CONCEPT_FEATURE_CATEGORY" => &[
7525            Slot {
7526                k: Sk::Str,
7527                req: true,
7528                der: false,
7529                swire: None,
7530            },
7531            Slot {
7532                k: Sk::Str,
7533                req: false,
7534                der: false,
7535                swire: None,
7536            },
7537        ],
7538        "PRODUCT_CONTEXT" => &[
7539            Slot {
7540                k: Sk::Str,
7541                req: true,
7542                der: false,
7543                swire: None,
7544            },
7545            Slot {
7546                k: Sk::Ref,
7547                req: true,
7548                der: false,
7549                swire: None,
7550            },
7551            Slot {
7552                k: Sk::Str,
7553                req: true,
7554                der: false,
7555                swire: None,
7556            },
7557        ],
7558        "PRODUCT_DEFINITION" => &[
7559            Slot {
7560                k: Sk::Str,
7561                req: true,
7562                der: false,
7563                swire: None,
7564            },
7565            Slot {
7566                k: Sk::Str,
7567                req: false,
7568                der: false,
7569                swire: None,
7570            },
7571            Slot {
7572                k: Sk::Ref,
7573                req: true,
7574                der: false,
7575                swire: None,
7576            },
7577            Slot {
7578                k: Sk::Ref,
7579                req: true,
7580                der: false,
7581                swire: None,
7582            },
7583        ],
7584        "PRODUCT_DEFINITION_CONTEXT" => &[
7585            Slot {
7586                k: Sk::Str,
7587                req: true,
7588                der: false,
7589                swire: None,
7590            },
7591            Slot {
7592                k: Sk::Ref,
7593                req: true,
7594                der: false,
7595                swire: None,
7596            },
7597            Slot {
7598                k: Sk::Str,
7599                req: true,
7600                der: false,
7601                swire: None,
7602            },
7603        ],
7604        "PRODUCT_DEFINITION_CONTEXT_ASSOCIATION" => &[
7605            Slot {
7606                k: Sk::Ref,
7607                req: true,
7608                der: false,
7609                swire: None,
7610            },
7611            Slot {
7612                k: Sk::Ref,
7613                req: true,
7614                der: false,
7615                swire: None,
7616            },
7617            Slot {
7618                k: Sk::Ref,
7619                req: true,
7620                der: false,
7621                swire: None,
7622            },
7623        ],
7624        "PRODUCT_DEFINITION_CONTEXT_ROLE" => &[
7625            Slot {
7626                k: Sk::Str,
7627                req: true,
7628                der: false,
7629                swire: None,
7630            },
7631            Slot {
7632                k: Sk::Str,
7633                req: false,
7634                der: false,
7635                swire: None,
7636            },
7637        ],
7638        "PRODUCT_DEFINITION_EFFECTIVITY" => &[
7639            Slot {
7640                k: Sk::Str,
7641                req: true,
7642                der: false,
7643                swire: None,
7644            },
7645            Slot {
7646                k: Sk::Ref,
7647                req: true,
7648                der: false,
7649                swire: None,
7650            },
7651        ],
7652        "PRODUCT_DEFINITION_FORMATION" => &[
7653            Slot {
7654                k: Sk::Str,
7655                req: true,
7656                der: false,
7657                swire: None,
7658            },
7659            Slot {
7660                k: Sk::Str,
7661                req: false,
7662                der: false,
7663                swire: None,
7664            },
7665            Slot {
7666                k: Sk::Ref,
7667                req: true,
7668                der: false,
7669                swire: None,
7670            },
7671        ],
7672        "PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE" => &[
7673            Slot {
7674                k: Sk::Str,
7675                req: true,
7676                der: false,
7677                swire: None,
7678            },
7679            Slot {
7680                k: Sk::Str,
7681                req: false,
7682                der: false,
7683                swire: None,
7684            },
7685            Slot {
7686                k: Sk::Ref,
7687                req: true,
7688                der: false,
7689                swire: None,
7690            },
7691            Slot {
7692                k: Sk::Enum,
7693                req: true,
7694                der: false,
7695                swire: None,
7696            },
7697        ],
7698        "PRODUCT_DEFINITION_OCCURRENCE" => &[
7699            Slot {
7700                k: Sk::Str,
7701                req: true,
7702                der: false,
7703                swire: None,
7704            },
7705            Slot {
7706                k: Sk::Str,
7707                req: false,
7708                der: false,
7709                swire: None,
7710            },
7711            Slot {
7712                k: Sk::Str,
7713                req: false,
7714                der: false,
7715                swire: None,
7716            },
7717            Slot {
7718                k: Sk::Ref,
7719                req: false,
7720                der: false,
7721                swire: None,
7722            },
7723            Slot {
7724                k: Sk::Ref,
7725                req: false,
7726                der: false,
7727                swire: None,
7728            },
7729        ],
7730        "PRODUCT_DEFINITION_RELATIONSHIP" => &[
7731            Slot {
7732                k: Sk::Str,
7733                req: true,
7734                der: false,
7735                swire: None,
7736            },
7737            Slot {
7738                k: Sk::Str,
7739                req: true,
7740                der: false,
7741                swire: None,
7742            },
7743            Slot {
7744                k: Sk::Str,
7745                req: false,
7746                der: false,
7747                swire: None,
7748            },
7749            Slot {
7750                k: Sk::Ref,
7751                req: true,
7752                der: false,
7753                swire: None,
7754            },
7755            Slot {
7756                k: Sk::Ref,
7757                req: true,
7758                der: false,
7759                swire: None,
7760            },
7761        ],
7762        "PRODUCT_DEFINITION_RELATIONSHIP_RELATIONSHIP" => &[
7763            Slot {
7764                k: Sk::Str,
7765                req: true,
7766                der: false,
7767                swire: None,
7768            },
7769            Slot {
7770                k: Sk::Str,
7771                req: true,
7772                der: false,
7773                swire: None,
7774            },
7775            Slot {
7776                k: Sk::Str,
7777                req: false,
7778                der: false,
7779                swire: None,
7780            },
7781            Slot {
7782                k: Sk::Ref,
7783                req: true,
7784                der: false,
7785                swire: None,
7786            },
7787            Slot {
7788                k: Sk::Ref,
7789                req: true,
7790                der: false,
7791                swire: None,
7792            },
7793        ],
7794        "PRODUCT_DEFINITION_SHAPE" => &[
7795            Slot {
7796                k: Sk::Str,
7797                req: true,
7798                der: false,
7799                swire: None,
7800            },
7801            Slot {
7802                k: Sk::Str,
7803                req: false,
7804                der: false,
7805                swire: None,
7806            },
7807            Slot {
7808                k: Sk::Ref,
7809                req: true,
7810                der: false,
7811                swire: None,
7812            },
7813        ],
7814        "PRODUCT_DEFINITION_SUBSTITUTE" => &[
7815            Slot {
7816                k: Sk::Str,
7817                req: false,
7818                der: false,
7819                swire: None,
7820            },
7821            Slot {
7822                k: Sk::Ref,
7823                req: true,
7824                der: false,
7825                swire: None,
7826            },
7827            Slot {
7828                k: Sk::Ref,
7829                req: true,
7830                der: false,
7831                swire: None,
7832            },
7833        ],
7834        "PRODUCT_DEFINITION_USAGE" => &[
7835            Slot {
7836                k: Sk::Str,
7837                req: true,
7838                der: false,
7839                swire: None,
7840            },
7841            Slot {
7842                k: Sk::Str,
7843                req: true,
7844                der: false,
7845                swire: None,
7846            },
7847            Slot {
7848                k: Sk::Str,
7849                req: false,
7850                der: false,
7851                swire: None,
7852            },
7853            Slot {
7854                k: Sk::Ref,
7855                req: true,
7856                der: false,
7857                swire: None,
7858            },
7859            Slot {
7860                k: Sk::Ref,
7861                req: true,
7862                der: false,
7863                swire: None,
7864            },
7865        ],
7866        "PRODUCT_DEFINITION_WITH_ASSOCIATED_DOCUMENTS" => &[
7867            Slot {
7868                k: Sk::Str,
7869                req: true,
7870                der: false,
7871                swire: None,
7872            },
7873            Slot {
7874                k: Sk::Str,
7875                req: false,
7876                der: false,
7877                swire: None,
7878            },
7879            Slot {
7880                k: Sk::Ref,
7881                req: true,
7882                der: false,
7883                swire: None,
7884            },
7885            Slot {
7886                k: Sk::Ref,
7887                req: true,
7888                der: false,
7889                swire: None,
7890            },
7891            Slot {
7892                k: Sk::Vec,
7893                req: true,
7894                der: false,
7895                swire: None,
7896            },
7897        ],
7898        "PRODUCT_RELATED_PRODUCT_CATEGORY" => &[
7899            Slot {
7900                k: Sk::Str,
7901                req: true,
7902                der: false,
7903                swire: None,
7904            },
7905            Slot {
7906                k: Sk::Str,
7907                req: false,
7908                der: false,
7909                swire: None,
7910            },
7911            Slot {
7912                k: Sk::Vec,
7913                req: true,
7914                der: false,
7915                swire: None,
7916            },
7917        ],
7918        "PROJECTED_ZONE_DEFINITION" => &[
7919            Slot {
7920                k: Sk::Ref,
7921                req: true,
7922                der: false,
7923                swire: None,
7924            },
7925            Slot {
7926                k: Sk::Vec,
7927                req: true,
7928                der: false,
7929                swire: None,
7930            },
7931            Slot {
7932                k: Sk::Ref,
7933                req: true,
7934                der: false,
7935                swire: None,
7936            },
7937            Slot {
7938                k: Sk::Ref,
7939                req: true,
7940                der: false,
7941                swire: None,
7942            },
7943        ],
7944        "PROPERTY_DEFINITION" => &[
7945            Slot {
7946                k: Sk::Str,
7947                req: true,
7948                der: false,
7949                swire: None,
7950            },
7951            Slot {
7952                k: Sk::Str,
7953                req: false,
7954                der: false,
7955                swire: None,
7956            },
7957            Slot {
7958                k: Sk::Ref,
7959                req: true,
7960                der: false,
7961                swire: None,
7962            },
7963        ],
7964        "PROPERTY_DEFINITION_RELATIONSHIP" => &[
7965            Slot {
7966                k: Sk::Str,
7967                req: true,
7968                der: false,
7969                swire: None,
7970            },
7971            Slot {
7972                k: Sk::Str,
7973                req: true,
7974                der: false,
7975                swire: None,
7976            },
7977            Slot {
7978                k: Sk::Ref,
7979                req: true,
7980                der: false,
7981                swire: None,
7982            },
7983            Slot {
7984                k: Sk::Ref,
7985                req: true,
7986                der: false,
7987                swire: None,
7988            },
7989        ],
7990        "PROPERTY_DEFINITION_REPRESENTATION" => &[
7991            Slot {
7992                k: Sk::Ref,
7993                req: true,
7994                der: false,
7995                swire: None,
7996            },
7997            Slot {
7998                k: Sk::Ref,
7999                req: true,
8000                der: false,
8001                swire: None,
8002            },
8003        ],
8004        "QUALIFIED_REPRESENTATION_ITEM" => &[
8005            Slot {
8006                k: Sk::Str,
8007                req: true,
8008                der: false,
8009                swire: None,
8010            },
8011            Slot {
8012                k: Sk::Vec,
8013                req: true,
8014                der: false,
8015                swire: None,
8016            },
8017        ],
8018        "QUASI_UNIFORM_CURVE" => &[
8019            Slot {
8020                k: Sk::Str,
8021                req: true,
8022                der: false,
8023                swire: None,
8024            },
8025            Slot {
8026                k: Sk::Int,
8027                req: true,
8028                der: false,
8029                swire: None,
8030            },
8031            Slot {
8032                k: Sk::Vec,
8033                req: true,
8034                der: false,
8035                swire: None,
8036            },
8037            Slot {
8038                k: Sk::Enum,
8039                req: true,
8040                der: false,
8041                swire: None,
8042            },
8043            Slot {
8044                k: Sk::Log,
8045                req: true,
8046                der: false,
8047                swire: None,
8048            },
8049            Slot {
8050                k: Sk::Log,
8051                req: true,
8052                der: false,
8053                swire: None,
8054            },
8055        ],
8056        "QUASI_UNIFORM_SURFACE" => &[
8057            Slot {
8058                k: Sk::Str,
8059                req: true,
8060                der: false,
8061                swire: None,
8062            },
8063            Slot {
8064                k: Sk::Int,
8065                req: true,
8066                der: false,
8067                swire: None,
8068            },
8069            Slot {
8070                k: Sk::Int,
8071                req: true,
8072                der: false,
8073                swire: None,
8074            },
8075            Slot {
8076                k: Sk::Vec,
8077                req: true,
8078                der: false,
8079                swire: None,
8080            },
8081            Slot {
8082                k: Sk::Enum,
8083                req: true,
8084                der: false,
8085                swire: None,
8086            },
8087            Slot {
8088                k: Sk::Log,
8089                req: true,
8090                der: false,
8091                swire: None,
8092            },
8093            Slot {
8094                k: Sk::Log,
8095                req: true,
8096                der: false,
8097                swire: None,
8098            },
8099            Slot {
8100                k: Sk::Log,
8101                req: true,
8102                der: false,
8103                swire: None,
8104            },
8105        ],
8106        "RATIO_MEASURE_WITH_UNIT" => &[
8107            Slot {
8108                k: Sk::Meas,
8109                req: true,
8110                der: false,
8111                swire: None,
8112            },
8113            Slot {
8114                k: Sk::Ref,
8115                req: true,
8116                der: false,
8117                swire: None,
8118            },
8119        ],
8120        "RATIO_UNIT" => &[Slot {
8121            k: Sk::Ref,
8122            req: true,
8123            der: false,
8124            swire: None,
8125        }],
8126        "RATIONAL_B_SPLINE_CURVE" => &[
8127            Slot {
8128                k: Sk::Str,
8129                req: true,
8130                der: false,
8131                swire: None,
8132            },
8133            Slot {
8134                k: Sk::Int,
8135                req: true,
8136                der: false,
8137                swire: None,
8138            },
8139            Slot {
8140                k: Sk::Vec,
8141                req: true,
8142                der: false,
8143                swire: None,
8144            },
8145            Slot {
8146                k: Sk::Enum,
8147                req: true,
8148                der: false,
8149                swire: None,
8150            },
8151            Slot {
8152                k: Sk::Log,
8153                req: true,
8154                der: false,
8155                swire: None,
8156            },
8157            Slot {
8158                k: Sk::Log,
8159                req: true,
8160                der: false,
8161                swire: None,
8162            },
8163            Slot {
8164                k: Sk::Vec,
8165                req: true,
8166                der: false,
8167                swire: None,
8168            },
8169        ],
8170        "RATIONAL_B_SPLINE_SURFACE" => &[
8171            Slot {
8172                k: Sk::Str,
8173                req: true,
8174                der: false,
8175                swire: None,
8176            },
8177            Slot {
8178                k: Sk::Int,
8179                req: true,
8180                der: false,
8181                swire: None,
8182            },
8183            Slot {
8184                k: Sk::Int,
8185                req: true,
8186                der: false,
8187                swire: None,
8188            },
8189            Slot {
8190                k: Sk::Vec,
8191                req: true,
8192                der: false,
8193                swire: None,
8194            },
8195            Slot {
8196                k: Sk::Enum,
8197                req: true,
8198                der: false,
8199                swire: None,
8200            },
8201            Slot {
8202                k: Sk::Log,
8203                req: true,
8204                der: false,
8205                swire: None,
8206            },
8207            Slot {
8208                k: Sk::Log,
8209                req: true,
8210                der: false,
8211                swire: None,
8212            },
8213            Slot {
8214                k: Sk::Log,
8215                req: true,
8216                der: false,
8217                swire: None,
8218            },
8219            Slot {
8220                k: Sk::Vec,
8221                req: true,
8222                der: false,
8223                swire: None,
8224            },
8225        ],
8226        "REAL_LITERAL" => &[Slot {
8227            k: Sk::Real,
8228            req: true,
8229            der: false,
8230            swire: None,
8231        }],
8232        "REAL_REPRESENTATION_ITEM" => &[
8233            Slot {
8234                k: Sk::Str,
8235                req: true,
8236                der: false,
8237                swire: None,
8238            },
8239            Slot {
8240                k: Sk::Real,
8241                req: true,
8242                der: false,
8243                swire: None,
8244            },
8245        ],
8246        "REPOSITIONED_TESSELLATED_ITEM" => &[
8247            Slot {
8248                k: Sk::Str,
8249                req: true,
8250                der: false,
8251                swire: None,
8252            },
8253            Slot {
8254                k: Sk::Ref,
8255                req: true,
8256                der: false,
8257                swire: None,
8258            },
8259        ],
8260        "REPRESENTATION" => &[
8261            Slot {
8262                k: Sk::Str,
8263                req: true,
8264                der: false,
8265                swire: None,
8266            },
8267            Slot {
8268                k: Sk::Vec,
8269                req: true,
8270                der: false,
8271                swire: None,
8272            },
8273            Slot {
8274                k: Sk::Ref,
8275                req: true,
8276                der: false,
8277                swire: None,
8278            },
8279        ],
8280        "REPRESENTATION_CONTEXT" => &[
8281            Slot {
8282                k: Sk::Str,
8283                req: true,
8284                der: false,
8285                swire: None,
8286            },
8287            Slot {
8288                k: Sk::Str,
8289                req: true,
8290                der: false,
8291                swire: None,
8292            },
8293        ],
8294        "REPRESENTATION_CONTEXT_REFERENCE" => &[Slot {
8295            k: Sk::Str,
8296            req: true,
8297            der: false,
8298            swire: None,
8299        }],
8300        "REPRESENTATION_ITEM" => &[Slot {
8301            k: Sk::Str,
8302            req: true,
8303            der: false,
8304            swire: None,
8305        }],
8306        "REPRESENTATION_MAP" => &[
8307            Slot {
8308                k: Sk::Ref,
8309                req: true,
8310                der: false,
8311                swire: None,
8312            },
8313            Slot {
8314                k: Sk::Ref,
8315                req: true,
8316                der: false,
8317                swire: None,
8318            },
8319        ],
8320        "REPRESENTATION_REFERENCE" => &[
8321            Slot {
8322                k: Sk::Str,
8323                req: true,
8324                der: false,
8325                swire: None,
8326            },
8327            Slot {
8328                k: Sk::Ref,
8329                req: true,
8330                der: false,
8331                swire: None,
8332            },
8333        ],
8334        "REPRESENTATION_RELATIONSHIP" => &[
8335            Slot {
8336                k: Sk::Str,
8337                req: true,
8338                der: false,
8339                swire: None,
8340            },
8341            Slot {
8342                k: Sk::Str,
8343                req: false,
8344                der: false,
8345                swire: None,
8346            },
8347            Slot {
8348                k: Sk::Ref,
8349                req: true,
8350                der: false,
8351                swire: None,
8352            },
8353            Slot {
8354                k: Sk::Ref,
8355                req: true,
8356                der: false,
8357                swire: None,
8358            },
8359        ],
8360        "REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION" => &[
8361            Slot {
8362                k: Sk::Str,
8363                req: true,
8364                der: false,
8365                swire: None,
8366            },
8367            Slot {
8368                k: Sk::Str,
8369                req: false,
8370                der: false,
8371                swire: None,
8372            },
8373            Slot {
8374                k: Sk::Ref,
8375                req: true,
8376                der: false,
8377                swire: None,
8378            },
8379            Slot {
8380                k: Sk::Ref,
8381                req: true,
8382                der: false,
8383                swire: None,
8384            },
8385            Slot {
8386                k: Sk::Ref,
8387                req: true,
8388                der: false,
8389                swire: None,
8390            },
8391        ],
8392        "RESOURCE_PROPERTY" => &[
8393            Slot {
8394                k: Sk::Str,
8395                req: true,
8396                der: false,
8397                swire: None,
8398            },
8399            Slot {
8400                k: Sk::Str,
8401                req: true,
8402                der: false,
8403                swire: None,
8404            },
8405            Slot {
8406                k: Sk::Ref,
8407                req: true,
8408                der: false,
8409                swire: None,
8410            },
8411        ],
8412        "RESOURCE_REQUIREMENT_TYPE" => &[
8413            Slot {
8414                k: Sk::Str,
8415                req: true,
8416                der: false,
8417                swire: None,
8418            },
8419            Slot {
8420                k: Sk::Str,
8421                req: true,
8422                der: false,
8423                swire: None,
8424            },
8425        ],
8426        "ROLE_ASSOCIATION" => &[
8427            Slot {
8428                k: Sk::Ref,
8429                req: true,
8430                der: false,
8431                swire: None,
8432            },
8433            Slot {
8434                k: Sk::Ref,
8435                req: true,
8436                der: false,
8437                swire: None,
8438            },
8439        ],
8440        "ROUNDNESS_TOLERANCE" => &[
8441            Slot {
8442                k: Sk::Str,
8443                req: true,
8444                der: false,
8445                swire: None,
8446            },
8447            Slot {
8448                k: Sk::Str,
8449                req: false,
8450                der: false,
8451                swire: None,
8452            },
8453            Slot {
8454                k: Sk::Ref,
8455                req: false,
8456                der: false,
8457                swire: None,
8458            },
8459            Slot {
8460                k: Sk::Ref,
8461                req: true,
8462                der: false,
8463                swire: None,
8464            },
8465        ],
8466        "SEAM_CURVE" => &[
8467            Slot {
8468                k: Sk::Str,
8469                req: true,
8470                der: false,
8471                swire: None,
8472            },
8473            Slot {
8474                k: Sk::Ref,
8475                req: true,
8476                der: false,
8477                swire: None,
8478            },
8479            Slot {
8480                k: Sk::Vec,
8481                req: true,
8482                der: false,
8483                swire: None,
8484            },
8485            Slot {
8486                k: Sk::Enum,
8487                req: true,
8488                der: false,
8489                swire: None,
8490            },
8491        ],
8492        "SECURITY_CLASSIFICATION" => &[
8493            Slot {
8494                k: Sk::Str,
8495                req: true,
8496                der: false,
8497                swire: None,
8498            },
8499            Slot {
8500                k: Sk::Str,
8501                req: true,
8502                der: false,
8503                swire: None,
8504            },
8505            Slot {
8506                k: Sk::Ref,
8507                req: true,
8508                der: false,
8509                swire: None,
8510            },
8511        ],
8512        "SECURITY_CLASSIFICATION_ASSIGNMENT" => &[Slot {
8513            k: Sk::Ref,
8514            req: true,
8515            der: false,
8516            swire: None,
8517        }],
8518        "SECURITY_CLASSIFICATION_LEVEL" => &[Slot {
8519            k: Sk::Str,
8520            req: true,
8521            der: false,
8522            swire: None,
8523        }],
8524        "SHAPE_ASPECT" => &[
8525            Slot {
8526                k: Sk::Str,
8527                req: true,
8528                der: false,
8529                swire: None,
8530            },
8531            Slot {
8532                k: Sk::Str,
8533                req: false,
8534                der: false,
8535                swire: None,
8536            },
8537            Slot {
8538                k: Sk::Ref,
8539                req: true,
8540                der: false,
8541                swire: None,
8542            },
8543            Slot {
8544                k: Sk::Log,
8545                req: true,
8546                der: false,
8547                swire: None,
8548            },
8549        ],
8550        "SHAPE_ASPECT_ASSOCIATIVITY" => &[
8551            Slot {
8552                k: Sk::Str,
8553                req: true,
8554                der: false,
8555                swire: None,
8556            },
8557            Slot {
8558                k: Sk::Str,
8559                req: false,
8560                der: false,
8561                swire: None,
8562            },
8563            Slot {
8564                k: Sk::Ref,
8565                req: true,
8566                der: false,
8567                swire: None,
8568            },
8569            Slot {
8570                k: Sk::Ref,
8571                req: true,
8572                der: false,
8573                swire: None,
8574            },
8575        ],
8576        "SHAPE_ASPECT_DERIVING_RELATIONSHIP" => &[
8577            Slot {
8578                k: Sk::Str,
8579                req: true,
8580                der: false,
8581                swire: None,
8582            },
8583            Slot {
8584                k: Sk::Str,
8585                req: false,
8586                der: false,
8587                swire: None,
8588            },
8589            Slot {
8590                k: Sk::Ref,
8591                req: true,
8592                der: false,
8593                swire: None,
8594            },
8595            Slot {
8596                k: Sk::Ref,
8597                req: true,
8598                der: false,
8599                swire: None,
8600            },
8601        ],
8602        "SHAPE_ASPECT_RELATIONSHIP" => &[
8603            Slot {
8604                k: Sk::Str,
8605                req: true,
8606                der: false,
8607                swire: None,
8608            },
8609            Slot {
8610                k: Sk::Str,
8611                req: false,
8612                der: false,
8613                swire: None,
8614            },
8615            Slot {
8616                k: Sk::Ref,
8617                req: true,
8618                der: false,
8619                swire: None,
8620            },
8621            Slot {
8622                k: Sk::Ref,
8623                req: true,
8624                der: false,
8625                swire: None,
8626            },
8627        ],
8628        "SHAPE_DEFINITION_REPRESENTATION" => &[
8629            Slot {
8630                k: Sk::Ref,
8631                req: true,
8632                der: false,
8633                swire: None,
8634            },
8635            Slot {
8636                k: Sk::Ref,
8637                req: true,
8638                der: false,
8639                swire: None,
8640            },
8641        ],
8642        "SHAPE_DIMENSION_REPRESENTATION" => &[
8643            Slot {
8644                k: Sk::Str,
8645                req: true,
8646                der: false,
8647                swire: None,
8648            },
8649            Slot {
8650                k: Sk::Vec,
8651                req: true,
8652                der: false,
8653                swire: None,
8654            },
8655            Slot {
8656                k: Sk::Ref,
8657                req: true,
8658                der: false,
8659                swire: None,
8660            },
8661        ],
8662        "SHAPE_REPRESENTATION" => &[
8663            Slot {
8664                k: Sk::Str,
8665                req: true,
8666                der: false,
8667                swire: None,
8668            },
8669            Slot {
8670                k: Sk::Vec,
8671                req: true,
8672                der: false,
8673                swire: None,
8674            },
8675            Slot {
8676                k: Sk::Ref,
8677                req: true,
8678                der: false,
8679                swire: None,
8680            },
8681        ],
8682        "SHAPE_REPRESENTATION_RELATIONSHIP" => &[
8683            Slot {
8684                k: Sk::Str,
8685                req: true,
8686                der: false,
8687                swire: None,
8688            },
8689            Slot {
8690                k: Sk::Str,
8691                req: false,
8692                der: false,
8693                swire: None,
8694            },
8695            Slot {
8696                k: Sk::Ref,
8697                req: true,
8698                der: false,
8699                swire: None,
8700            },
8701            Slot {
8702                k: Sk::Ref,
8703                req: true,
8704                der: false,
8705                swire: None,
8706            },
8707        ],
8708        "SHAPE_REPRESENTATION_WITH_PARAMETERS" => &[
8709            Slot {
8710                k: Sk::Str,
8711                req: true,
8712                der: false,
8713                swire: None,
8714            },
8715            Slot {
8716                k: Sk::Vec,
8717                req: true,
8718                der: false,
8719                swire: None,
8720            },
8721            Slot {
8722                k: Sk::Ref,
8723                req: true,
8724                der: false,
8725                swire: None,
8726            },
8727        ],
8728        "SHELL_BASED_SURFACE_MODEL" => &[
8729            Slot {
8730                k: Sk::Str,
8731                req: true,
8732                der: false,
8733                swire: None,
8734            },
8735            Slot {
8736                k: Sk::Vec,
8737                req: true,
8738                der: false,
8739                swire: None,
8740            },
8741        ],
8742        "SI_UNIT" => &[
8743            Slot {
8744                k: Sk::Ref,
8745                req: true,
8746                der: true,
8747                swire: None,
8748            },
8749            Slot {
8750                k: Sk::Enum,
8751                req: false,
8752                der: false,
8753                swire: None,
8754            },
8755            Slot {
8756                k: Sk::Enum,
8757                req: true,
8758                der: false,
8759                swire: None,
8760            },
8761        ],
8762        "SIMPLE_GENERIC_EXPRESSION" => &[],
8763        "SIMPLE_NUMERIC_EXPRESSION" => &[],
8764        "SOLID_ANGLE_UNIT" => &[Slot {
8765            k: Sk::Ref,
8766            req: true,
8767            der: false,
8768            swire: None,
8769        }],
8770        "SOLID_MODEL" => &[Slot {
8771            k: Sk::Str,
8772            req: true,
8773            der: false,
8774            swire: None,
8775        }],
8776        "SPHERICAL_SURFACE" => &[
8777            Slot {
8778                k: Sk::Str,
8779                req: true,
8780                der: false,
8781                swire: None,
8782            },
8783            Slot {
8784                k: Sk::Ref,
8785                req: true,
8786                der: false,
8787                swire: None,
8788            },
8789            Slot {
8790                k: Sk::Real,
8791                req: true,
8792                der: false,
8793                swire: None,
8794            },
8795        ],
8796        "START_REQUEST" => &[
8797            Slot {
8798                k: Sk::Ref,
8799                req: true,
8800                der: false,
8801                swire: None,
8802            },
8803            Slot {
8804                k: Sk::Vec,
8805                req: true,
8806                der: false,
8807                swire: None,
8808            },
8809        ],
8810        "START_WORK" => &[
8811            Slot {
8812                k: Sk::Ref,
8813                req: true,
8814                der: false,
8815                swire: None,
8816            },
8817            Slot {
8818                k: Sk::Vec,
8819                req: true,
8820                der: false,
8821                swire: None,
8822            },
8823        ],
8824        "STATE_OBSERVED" => &[
8825            Slot {
8826                k: Sk::Str,
8827                req: true,
8828                der: false,
8829                swire: None,
8830            },
8831            Slot {
8832                k: Sk::Str,
8833                req: false,
8834                der: false,
8835                swire: None,
8836            },
8837        ],
8838        "STATE_TYPE" => &[
8839            Slot {
8840                k: Sk::Str,
8841                req: true,
8842                der: false,
8843                swire: None,
8844            },
8845            Slot {
8846                k: Sk::Str,
8847                req: false,
8848                der: false,
8849                swire: None,
8850            },
8851        ],
8852        "STRAIGHTNESS_TOLERANCE" => &[
8853            Slot {
8854                k: Sk::Str,
8855                req: true,
8856                der: false,
8857                swire: None,
8858            },
8859            Slot {
8860                k: Sk::Str,
8861                req: false,
8862                der: false,
8863                swire: None,
8864            },
8865            Slot {
8866                k: Sk::Ref,
8867                req: false,
8868                der: false,
8869                swire: None,
8870            },
8871            Slot {
8872                k: Sk::Ref,
8873                req: true,
8874                der: false,
8875                swire: None,
8876            },
8877        ],
8878        "STYLED_ITEM" => &[
8879            Slot {
8880                k: Sk::Str,
8881                req: true,
8882                der: false,
8883                swire: None,
8884            },
8885            Slot {
8886                k: Sk::Vec,
8887                req: true,
8888                der: false,
8889                swire: None,
8890            },
8891            Slot {
8892                k: Sk::Ref,
8893                req: true,
8894                der: false,
8895                swire: None,
8896            },
8897        ],
8898        "SURFACE" => &[Slot {
8899            k: Sk::Str,
8900            req: true,
8901            der: false,
8902            swire: None,
8903        }],
8904        "SURFACE_CURVE" => &[
8905            Slot {
8906                k: Sk::Str,
8907                req: true,
8908                der: false,
8909                swire: None,
8910            },
8911            Slot {
8912                k: Sk::Ref,
8913                req: true,
8914                der: false,
8915                swire: None,
8916            },
8917            Slot {
8918                k: Sk::Vec,
8919                req: true,
8920                der: false,
8921                swire: None,
8922            },
8923            Slot {
8924                k: Sk::Enum,
8925                req: true,
8926                der: false,
8927                swire: None,
8928            },
8929        ],
8930        "SURFACE_OF_LINEAR_EXTRUSION" => &[
8931            Slot {
8932                k: Sk::Str,
8933                req: true,
8934                der: false,
8935                swire: None,
8936            },
8937            Slot {
8938                k: Sk::Ref,
8939                req: true,
8940                der: false,
8941                swire: None,
8942            },
8943            Slot {
8944                k: Sk::Ref,
8945                req: true,
8946                der: false,
8947                swire: None,
8948            },
8949        ],
8950        "SURFACE_OF_REVOLUTION" => &[
8951            Slot {
8952                k: Sk::Str,
8953                req: true,
8954                der: false,
8955                swire: None,
8956            },
8957            Slot {
8958                k: Sk::Ref,
8959                req: true,
8960                der: false,
8961                swire: None,
8962            },
8963            Slot {
8964                k: Sk::Ref,
8965                req: true,
8966                der: false,
8967                swire: None,
8968            },
8969        ],
8970        "SURFACE_PROFILE_TOLERANCE" => &[
8971            Slot {
8972                k: Sk::Str,
8973                req: true,
8974                der: false,
8975                swire: None,
8976            },
8977            Slot {
8978                k: Sk::Str,
8979                req: false,
8980                der: false,
8981                swire: None,
8982            },
8983            Slot {
8984                k: Sk::Ref,
8985                req: false,
8986                der: false,
8987                swire: None,
8988            },
8989            Slot {
8990                k: Sk::Ref,
8991                req: true,
8992                der: false,
8993                swire: None,
8994            },
8995        ],
8996        "SURFACE_RENDERING_PROPERTIES" => &[Slot {
8997            k: Sk::Ref,
8998            req: true,
8999            der: false,
9000            swire: None,
9001        }],
9002        "SURFACE_SIDE_STYLE" => &[
9003            Slot {
9004                k: Sk::Str,
9005                req: true,
9006                der: false,
9007                swire: None,
9008            },
9009            Slot {
9010                k: Sk::Vec,
9011                req: true,
9012                der: false,
9013                swire: None,
9014            },
9015        ],
9016        "SURFACE_STYLE_BOUNDARY" => &[Slot {
9017            k: Sk::Ref,
9018            req: true,
9019            der: false,
9020            swire: None,
9021        }],
9022        "SURFACE_STYLE_CONTROL_GRID" => &[Slot {
9023            k: Sk::Ref,
9024            req: true,
9025            der: false,
9026            swire: None,
9027        }],
9028        "SURFACE_STYLE_FILL_AREA" => &[Slot {
9029            k: Sk::Ref,
9030            req: true,
9031            der: false,
9032            swire: None,
9033        }],
9034        "SURFACE_STYLE_PARAMETER_LINE" => &[
9035            Slot {
9036                k: Sk::Ref,
9037                req: true,
9038                der: false,
9039                swire: None,
9040            },
9041            Slot {
9042                k: Sk::Vec,
9043                req: true,
9044                der: false,
9045                swire: None,
9046            },
9047        ],
9048        "SURFACE_STYLE_REFLECTANCE_AMBIENT" => &[Slot {
9049            k: Sk::Real,
9050            req: true,
9051            der: false,
9052            swire: None,
9053        }],
9054        "SURFACE_STYLE_RENDERING" => &[
9055            Slot {
9056                k: Sk::Enum,
9057                req: true,
9058                der: false,
9059                swire: None,
9060            },
9061            Slot {
9062                k: Sk::Ref,
9063                req: true,
9064                der: false,
9065                swire: None,
9066            },
9067        ],
9068        "SURFACE_STYLE_RENDERING_WITH_PROPERTIES" => &[
9069            Slot {
9070                k: Sk::Enum,
9071                req: true,
9072                der: false,
9073                swire: None,
9074            },
9075            Slot {
9076                k: Sk::Ref,
9077                req: true,
9078                der: false,
9079                swire: None,
9080            },
9081            Slot {
9082                k: Sk::Vec,
9083                req: true,
9084                der: false,
9085                swire: None,
9086            },
9087        ],
9088        "SURFACE_STYLE_SEGMENTATION_CURVE" => &[Slot {
9089            k: Sk::Ref,
9090            req: true,
9091            der: false,
9092            swire: None,
9093        }],
9094        "SURFACE_STYLE_SILHOUETTE" => &[Slot {
9095            k: Sk::Ref,
9096            req: true,
9097            der: false,
9098            swire: None,
9099        }],
9100        "SURFACE_STYLE_TRANSPARENT" => &[Slot {
9101            k: Sk::Real,
9102            req: true,
9103            der: false,
9104            swire: None,
9105        }],
9106        "SURFACE_STYLE_USAGE" => &[
9107            Slot {
9108                k: Sk::Enum,
9109                req: true,
9110                der: false,
9111                swire: None,
9112            },
9113            Slot {
9114                k: Sk::Ref,
9115                req: true,
9116                der: false,
9117                swire: None,
9118            },
9119        ],
9120        "SWEPT_SURFACE" => &[
9121            Slot {
9122                k: Sk::Str,
9123                req: true,
9124                der: false,
9125                swire: None,
9126            },
9127            Slot {
9128                k: Sk::Ref,
9129                req: true,
9130                der: false,
9131                swire: None,
9132            },
9133        ],
9134        "SYMBOL_COLOUR" => &[Slot {
9135            k: Sk::Ref,
9136            req: true,
9137            der: false,
9138            swire: None,
9139        }],
9140        "SYMBOL_REPRESENTATION" => &[
9141            Slot {
9142                k: Sk::Str,
9143                req: true,
9144                der: false,
9145                swire: None,
9146            },
9147            Slot {
9148                k: Sk::Vec,
9149                req: true,
9150                der: false,
9151                swire: None,
9152            },
9153            Slot {
9154                k: Sk::Ref,
9155                req: true,
9156                der: false,
9157                swire: None,
9158            },
9159        ],
9160        "SYMBOL_STYLE" => &[
9161            Slot {
9162                k: Sk::Str,
9163                req: true,
9164                der: false,
9165                swire: None,
9166            },
9167            Slot {
9168                k: Sk::Ref,
9169                req: true,
9170                der: false,
9171                swire: None,
9172            },
9173        ],
9174        "SYMBOL_TARGET" => &[
9175            Slot {
9176                k: Sk::Str,
9177                req: true,
9178                der: false,
9179                swire: None,
9180            },
9181            Slot {
9182                k: Sk::Ref,
9183                req: true,
9184                der: false,
9185                swire: None,
9186            },
9187            Slot {
9188                k: Sk::Real,
9189                req: true,
9190                der: false,
9191                swire: None,
9192            },
9193            Slot {
9194                k: Sk::Real,
9195                req: true,
9196                der: false,
9197                swire: None,
9198            },
9199        ],
9200        "SYMMETRY_TOLERANCE" => &[
9201            Slot {
9202                k: Sk::Str,
9203                req: true,
9204                der: false,
9205                swire: None,
9206            },
9207            Slot {
9208                k: Sk::Str,
9209                req: false,
9210                der: false,
9211                swire: None,
9212            },
9213            Slot {
9214                k: Sk::Ref,
9215                req: false,
9216                der: false,
9217                swire: None,
9218            },
9219            Slot {
9220                k: Sk::Ref,
9221                req: true,
9222                der: false,
9223                swire: None,
9224            },
9225            Slot {
9226                k: Sk::Vec,
9227                req: true,
9228                der: false,
9229                swire: None,
9230            },
9231        ],
9232        "TERMINATOR_SYMBOL" => &[
9233            Slot {
9234                k: Sk::Str,
9235                req: true,
9236                der: false,
9237                swire: None,
9238            },
9239            Slot {
9240                k: Sk::Vec,
9241                req: true,
9242                der: false,
9243                swire: None,
9244            },
9245            Slot {
9246                k: Sk::Ref,
9247                req: true,
9248                der: false,
9249                swire: None,
9250            },
9251            Slot {
9252                k: Sk::Ref,
9253                req: true,
9254                der: false,
9255                swire: None,
9256            },
9257        ],
9258        "TESSELLATED_ANNOTATION_OCCURRENCE" => &[
9259            Slot {
9260                k: Sk::Str,
9261                req: true,
9262                der: false,
9263                swire: None,
9264            },
9265            Slot {
9266                k: Sk::Vec,
9267                req: true,
9268                der: false,
9269                swire: None,
9270            },
9271            Slot {
9272                k: Sk::Ref,
9273                req: true,
9274                der: false,
9275                swire: None,
9276            },
9277        ],
9278        "TESSELLATED_CURVE_SET" => &[
9279            Slot {
9280                k: Sk::Str,
9281                req: true,
9282                der: false,
9283                swire: None,
9284            },
9285            Slot {
9286                k: Sk::Ref,
9287                req: true,
9288                der: false,
9289                swire: None,
9290            },
9291            Slot {
9292                k: Sk::Vec,
9293                req: true,
9294                der: false,
9295                swire: None,
9296            },
9297        ],
9298        "TESSELLATED_FACE" => &[
9299            Slot {
9300                k: Sk::Str,
9301                req: true,
9302                der: false,
9303                swire: None,
9304            },
9305            Slot {
9306                k: Sk::Ref,
9307                req: true,
9308                der: false,
9309                swire: None,
9310            },
9311            Slot {
9312                k: Sk::Int,
9313                req: true,
9314                der: false,
9315                swire: None,
9316            },
9317            Slot {
9318                k: Sk::Vec,
9319                req: true,
9320                der: false,
9321                swire: None,
9322            },
9323            Slot {
9324                k: Sk::Ref,
9325                req: false,
9326                der: false,
9327                swire: None,
9328            },
9329        ],
9330        "TESSELLATED_GEOMETRIC_SET" => &[
9331            Slot {
9332                k: Sk::Str,
9333                req: true,
9334                der: false,
9335                swire: None,
9336            },
9337            Slot {
9338                k: Sk::Vec,
9339                req: true,
9340                der: false,
9341                swire: None,
9342            },
9343        ],
9344        "TESSELLATED_ITEM" => &[Slot {
9345            k: Sk::Str,
9346            req: true,
9347            der: false,
9348            swire: None,
9349        }],
9350        "TESSELLATED_SHAPE_REPRESENTATION" => &[
9351            Slot {
9352                k: Sk::Str,
9353                req: true,
9354                der: false,
9355                swire: None,
9356            },
9357            Slot {
9358                k: Sk::Vec,
9359                req: true,
9360                der: false,
9361                swire: None,
9362            },
9363            Slot {
9364                k: Sk::Ref,
9365                req: true,
9366                der: false,
9367                swire: None,
9368            },
9369        ],
9370        "TESSELLATED_SHELL" => &[
9371            Slot {
9372                k: Sk::Str,
9373                req: true,
9374                der: false,
9375                swire: None,
9376            },
9377            Slot {
9378                k: Sk::Vec,
9379                req: true,
9380                der: false,
9381                swire: None,
9382            },
9383            Slot {
9384                k: Sk::Ref,
9385                req: false,
9386                der: false,
9387                swire: None,
9388            },
9389        ],
9390        "TESSELLATED_SOLID" => &[
9391            Slot {
9392                k: Sk::Str,
9393                req: true,
9394                der: false,
9395                swire: None,
9396            },
9397            Slot {
9398                k: Sk::Vec,
9399                req: true,
9400                der: false,
9401                swire: None,
9402            },
9403            Slot {
9404                k: Sk::Ref,
9405                req: false,
9406                der: false,
9407                swire: None,
9408            },
9409        ],
9410        "TESSELLATED_STRUCTURED_ITEM" => &[Slot {
9411            k: Sk::Str,
9412            req: true,
9413            der: false,
9414            swire: None,
9415        }],
9416        "TESSELLATED_SURFACE_SET" => &[
9417            Slot {
9418                k: Sk::Str,
9419                req: true,
9420                der: false,
9421                swire: None,
9422            },
9423            Slot {
9424                k: Sk::Ref,
9425                req: true,
9426                der: false,
9427                swire: None,
9428            },
9429            Slot {
9430                k: Sk::Int,
9431                req: true,
9432                der: false,
9433                swire: None,
9434            },
9435            Slot {
9436                k: Sk::Vec,
9437                req: true,
9438                der: false,
9439                swire: None,
9440            },
9441        ],
9442        "TEXT_FONT" => &[
9443            Slot {
9444                k: Sk::Str,
9445                req: true,
9446                der: false,
9447                swire: None,
9448            },
9449            Slot {
9450                k: Sk::Str,
9451                req: true,
9452                der: false,
9453                swire: None,
9454            },
9455            Slot {
9456                k: Sk::Str,
9457                req: true,
9458                der: false,
9459                swire: None,
9460            },
9461        ],
9462        "TEXT_LITERAL" => &[
9463            Slot {
9464                k: Sk::Str,
9465                req: true,
9466                der: false,
9467                swire: None,
9468            },
9469            Slot {
9470                k: Sk::Str,
9471                req: true,
9472                der: false,
9473                swire: None,
9474            },
9475            Slot {
9476                k: Sk::Ref,
9477                req: true,
9478                der: false,
9479                swire: None,
9480            },
9481            Slot {
9482                k: Sk::Str,
9483                req: true,
9484                der: false,
9485                swire: None,
9486            },
9487            Slot {
9488                k: Sk::Enum,
9489                req: true,
9490                der: false,
9491                swire: None,
9492            },
9493            Slot {
9494                k: Sk::Ref,
9495                req: true,
9496                der: false,
9497                swire: None,
9498            },
9499        ],
9500        "TEXT_STYLE" => &[
9501            Slot {
9502                k: Sk::Str,
9503                req: true,
9504                der: false,
9505                swire: None,
9506            },
9507            Slot {
9508                k: Sk::Ref,
9509                req: true,
9510                der: false,
9511                swire: None,
9512            },
9513        ],
9514        "TEXT_STYLE_FOR_DEFINED_FONT" => &[Slot {
9515            k: Sk::Ref,
9516            req: true,
9517            der: false,
9518            swire: None,
9519        }],
9520        "TEXT_STYLE_WITH_BOX_CHARACTERISTICS" => &[
9521            Slot {
9522                k: Sk::Str,
9523                req: true,
9524                der: false,
9525                swire: None,
9526            },
9527            Slot {
9528                k: Sk::Ref,
9529                req: true,
9530                der: false,
9531                swire: None,
9532            },
9533            Slot {
9534                k: Sk::Vec,
9535                req: true,
9536                der: false,
9537                swire: None,
9538            },
9539        ],
9540        "TEXTURE_STYLE_SPECIFICATION" => &[],
9541        "TEXTURE_STYLE_TESSELLATION_SPECIFICATION" => &[],
9542        "TIME_UNIT" => &[Slot {
9543            k: Sk::Ref,
9544            req: true,
9545            der: false,
9546            swire: None,
9547        }],
9548        "TOLERANCE_VALUE" => &[
9549            Slot {
9550                k: Sk::Ref,
9551                req: true,
9552                der: false,
9553                swire: None,
9554            },
9555            Slot {
9556                k: Sk::Ref,
9557                req: true,
9558                der: false,
9559                swire: None,
9560            },
9561        ],
9562        "TOLERANCE_ZONE" => &[
9563            Slot {
9564                k: Sk::Str,
9565                req: true,
9566                der: false,
9567                swire: None,
9568            },
9569            Slot {
9570                k: Sk::Str,
9571                req: false,
9572                der: false,
9573                swire: None,
9574            },
9575            Slot {
9576                k: Sk::Ref,
9577                req: true,
9578                der: false,
9579                swire: None,
9580            },
9581            Slot {
9582                k: Sk::Log,
9583                req: true,
9584                der: false,
9585                swire: None,
9586            },
9587            Slot {
9588                k: Sk::Vec,
9589                req: true,
9590                der: false,
9591                swire: None,
9592            },
9593            Slot {
9594                k: Sk::Ref,
9595                req: true,
9596                der: false,
9597                swire: None,
9598            },
9599        ],
9600        "TOLERANCE_ZONE_DEFINITION" => &[
9601            Slot {
9602                k: Sk::Ref,
9603                req: true,
9604                der: false,
9605                swire: None,
9606            },
9607            Slot {
9608                k: Sk::Vec,
9609                req: true,
9610                der: false,
9611                swire: None,
9612            },
9613        ],
9614        "TOLERANCE_ZONE_FORM" => &[Slot {
9615            k: Sk::Str,
9616            req: true,
9617            der: false,
9618            swire: None,
9619        }],
9620        "TOLERANCE_ZONE_WITH_DATUM" => &[
9621            Slot {
9622                k: Sk::Str,
9623                req: true,
9624                der: false,
9625                swire: None,
9626            },
9627            Slot {
9628                k: Sk::Str,
9629                req: false,
9630                der: false,
9631                swire: None,
9632            },
9633            Slot {
9634                k: Sk::Ref,
9635                req: true,
9636                der: false,
9637                swire: None,
9638            },
9639            Slot {
9640                k: Sk::Log,
9641                req: true,
9642                der: false,
9643                swire: None,
9644            },
9645            Slot {
9646                k: Sk::Vec,
9647                req: true,
9648                der: false,
9649                swire: None,
9650            },
9651            Slot {
9652                k: Sk::Ref,
9653                req: true,
9654                der: false,
9655                swire: None,
9656            },
9657            Slot {
9658                k: Sk::Ref,
9659                req: true,
9660                der: false,
9661                swire: None,
9662            },
9663        ],
9664        "TOPOLOGICAL_REPRESENTATION_ITEM" => &[Slot {
9665            k: Sk::Str,
9666            req: true,
9667            der: false,
9668            swire: None,
9669        }],
9670        "TOROIDAL_SURFACE" => &[
9671            Slot {
9672                k: Sk::Str,
9673                req: true,
9674                der: false,
9675                swire: None,
9676            },
9677            Slot {
9678                k: Sk::Ref,
9679                req: true,
9680                der: false,
9681                swire: None,
9682            },
9683            Slot {
9684                k: Sk::Real,
9685                req: true,
9686                der: false,
9687                swire: None,
9688            },
9689            Slot {
9690                k: Sk::Real,
9691                req: true,
9692                der: false,
9693                swire: None,
9694            },
9695        ],
9696        "TOTAL_RUNOUT_TOLERANCE" => &[
9697            Slot {
9698                k: Sk::Str,
9699                req: true,
9700                der: false,
9701                swire: None,
9702            },
9703            Slot {
9704                k: Sk::Str,
9705                req: false,
9706                der: false,
9707                swire: None,
9708            },
9709            Slot {
9710                k: Sk::Ref,
9711                req: false,
9712                der: false,
9713                swire: None,
9714            },
9715            Slot {
9716                k: Sk::Ref,
9717                req: true,
9718                der: false,
9719                swire: None,
9720            },
9721            Slot {
9722                k: Sk::Vec,
9723                req: true,
9724                der: false,
9725                swire: None,
9726            },
9727        ],
9728        "TRIMMED_CURVE" => &[
9729            Slot {
9730                k: Sk::Str,
9731                req: true,
9732                der: false,
9733                swire: None,
9734            },
9735            Slot {
9736                k: Sk::Ref,
9737                req: true,
9738                der: false,
9739                swire: None,
9740            },
9741            Slot {
9742                k: Sk::Vec,
9743                req: true,
9744                der: false,
9745                swire: Some("PARAMETER_VALUE"),
9746            },
9747            Slot {
9748                k: Sk::Vec,
9749                req: true,
9750                der: false,
9751                swire: Some("PARAMETER_VALUE"),
9752            },
9753            Slot {
9754                k: Sk::Bool,
9755                req: true,
9756                der: false,
9757                swire: None,
9758            },
9759            Slot {
9760                k: Sk::Enum,
9761                req: true,
9762                der: false,
9763                swire: None,
9764            },
9765        ],
9766        "TWO_DIRECTION_REPEAT_FACTOR" => &[
9767            Slot {
9768                k: Sk::Str,
9769                req: true,
9770                der: false,
9771                swire: None,
9772            },
9773            Slot {
9774                k: Sk::Ref,
9775                req: true,
9776                der: false,
9777                swire: None,
9778            },
9779            Slot {
9780                k: Sk::Ref,
9781                req: true,
9782                der: false,
9783                swire: None,
9784            },
9785        ],
9786        "TYPE_QUALIFIER" => &[Slot {
9787            k: Sk::Str,
9788            req: true,
9789            der: false,
9790            swire: None,
9791        }],
9792        "UNCERTAINTY_MEASURE_WITH_UNIT" => &[
9793            Slot {
9794                k: Sk::Meas,
9795                req: true,
9796                der: false,
9797                swire: None,
9798            },
9799            Slot {
9800                k: Sk::Ref,
9801                req: true,
9802                der: false,
9803                swire: None,
9804            },
9805            Slot {
9806                k: Sk::Str,
9807                req: true,
9808                der: false,
9809                swire: None,
9810            },
9811            Slot {
9812                k: Sk::Str,
9813                req: false,
9814                der: false,
9815                swire: None,
9816            },
9817        ],
9818        "UNCERTAINTY_QUALIFIER" => &[
9819            Slot {
9820                k: Sk::Str,
9821                req: true,
9822                der: false,
9823                swire: None,
9824            },
9825            Slot {
9826                k: Sk::Str,
9827                req: true,
9828                der: false,
9829                swire: None,
9830            },
9831        ],
9832        "UNEQUALLY_DISPOSED_GEOMETRIC_TOLERANCE" => &[
9833            Slot {
9834                k: Sk::Str,
9835                req: true,
9836                der: false,
9837                swire: None,
9838            },
9839            Slot {
9840                k: Sk::Str,
9841                req: false,
9842                der: false,
9843                swire: None,
9844            },
9845            Slot {
9846                k: Sk::Ref,
9847                req: false,
9848                der: false,
9849                swire: None,
9850            },
9851            Slot {
9852                k: Sk::Ref,
9853                req: true,
9854                der: false,
9855                swire: None,
9856            },
9857            Slot {
9858                k: Sk::Ref,
9859                req: true,
9860                der: false,
9861                swire: None,
9862            },
9863        ],
9864        "UNIFORM_CURVE" => &[
9865            Slot {
9866                k: Sk::Str,
9867                req: true,
9868                der: false,
9869                swire: None,
9870            },
9871            Slot {
9872                k: Sk::Int,
9873                req: true,
9874                der: false,
9875                swire: None,
9876            },
9877            Slot {
9878                k: Sk::Vec,
9879                req: true,
9880                der: false,
9881                swire: None,
9882            },
9883            Slot {
9884                k: Sk::Enum,
9885                req: true,
9886                der: false,
9887                swire: None,
9888            },
9889            Slot {
9890                k: Sk::Log,
9891                req: true,
9892                der: false,
9893                swire: None,
9894            },
9895            Slot {
9896                k: Sk::Log,
9897                req: true,
9898                der: false,
9899                swire: None,
9900            },
9901        ],
9902        "UNIFORM_SURFACE" => &[
9903            Slot {
9904                k: Sk::Str,
9905                req: true,
9906                der: false,
9907                swire: None,
9908            },
9909            Slot {
9910                k: Sk::Int,
9911                req: true,
9912                der: false,
9913                swire: None,
9914            },
9915            Slot {
9916                k: Sk::Int,
9917                req: true,
9918                der: false,
9919                swire: None,
9920            },
9921            Slot {
9922                k: Sk::Vec,
9923                req: true,
9924                der: false,
9925                swire: None,
9926            },
9927            Slot {
9928                k: Sk::Enum,
9929                req: true,
9930                der: false,
9931                swire: None,
9932            },
9933            Slot {
9934                k: Sk::Log,
9935                req: true,
9936                der: false,
9937                swire: None,
9938            },
9939            Slot {
9940                k: Sk::Log,
9941                req: true,
9942                der: false,
9943                swire: None,
9944            },
9945            Slot {
9946                k: Sk::Log,
9947                req: true,
9948                der: false,
9949                swire: None,
9950            },
9951        ],
9952        "VALUE_FORMAT_TYPE_QUALIFIER" => &[Slot {
9953            k: Sk::Str,
9954            req: true,
9955            der: false,
9956            swire: None,
9957        }],
9958        "VALUE_REPRESENTATION_ITEM" => &[
9959            Slot {
9960                k: Sk::Str,
9961                req: true,
9962                der: false,
9963                swire: None,
9964            },
9965            Slot {
9966                k: Sk::Meas,
9967                req: true,
9968                der: false,
9969                swire: None,
9970            },
9971        ],
9972        "VECTOR" => &[
9973            Slot {
9974                k: Sk::Str,
9975                req: true,
9976                der: false,
9977                swire: None,
9978            },
9979            Slot {
9980                k: Sk::Ref,
9981                req: true,
9982                der: false,
9983                swire: None,
9984            },
9985            Slot {
9986                k: Sk::Real,
9987                req: true,
9988                der: false,
9989                swire: None,
9990            },
9991        ],
9992        "VERSIONED_ACTION_REQUEST" => &[
9993            Slot {
9994                k: Sk::Str,
9995                req: true,
9996                der: false,
9997                swire: None,
9998            },
9999            Slot {
10000                k: Sk::Str,
10001                req: false,
10002                der: false,
10003                swire: None,
10004            },
10005            Slot {
10006                k: Sk::Str,
10007                req: true,
10008                der: false,
10009                swire: None,
10010            },
10011            Slot {
10012                k: Sk::Str,
10013                req: false,
10014                der: false,
10015                swire: None,
10016            },
10017        ],
10018        "VERTEX" => &[Slot {
10019            k: Sk::Str,
10020            req: true,
10021            der: false,
10022            swire: None,
10023        }],
10024        "VERTEX_LOOP" => &[
10025            Slot {
10026                k: Sk::Str,
10027                req: true,
10028                der: false,
10029                swire: None,
10030            },
10031            Slot {
10032                k: Sk::Ref,
10033                req: true,
10034                der: false,
10035                swire: None,
10036            },
10037        ],
10038        "VERTEX_POINT" => &[
10039            Slot {
10040                k: Sk::Str,
10041                req: true,
10042                der: false,
10043                swire: None,
10044            },
10045            Slot {
10046                k: Sk::Ref,
10047                req: true,
10048                der: false,
10049                swire: None,
10050            },
10051        ],
10052        "VERTEX_SHELL" => &[
10053            Slot {
10054                k: Sk::Str,
10055                req: true,
10056                der: false,
10057                swire: None,
10058            },
10059            Slot {
10060                k: Sk::Ref,
10061                req: true,
10062                der: false,
10063                swire: None,
10064            },
10065        ],
10066        "VIEW_VOLUME" => &[
10067            Slot {
10068                k: Sk::Enum,
10069                req: true,
10070                der: false,
10071                swire: None,
10072            },
10073            Slot {
10074                k: Sk::Ref,
10075                req: true,
10076                der: false,
10077                swire: None,
10078            },
10079            Slot {
10080                k: Sk::Real,
10081                req: true,
10082                der: false,
10083                swire: None,
10084            },
10085            Slot {
10086                k: Sk::Real,
10087                req: true,
10088                der: false,
10089                swire: None,
10090            },
10091            Slot {
10092                k: Sk::Bool,
10093                req: true,
10094                der: false,
10095                swire: None,
10096            },
10097            Slot {
10098                k: Sk::Real,
10099                req: true,
10100                der: false,
10101                swire: None,
10102            },
10103            Slot {
10104                k: Sk::Bool,
10105                req: true,
10106                der: false,
10107                swire: None,
10108            },
10109            Slot {
10110                k: Sk::Bool,
10111                req: true,
10112                der: false,
10113                swire: None,
10114            },
10115            Slot {
10116                k: Sk::Ref,
10117                req: true,
10118                der: false,
10119                swire: None,
10120            },
10121        ],
10122        "VOLUME_UNIT" => &[Slot {
10123            k: Sk::Vec,
10124            req: true,
10125            der: false,
10126            swire: None,
10127        }],
10128        "WIRE_SHELL" => &[
10129            Slot {
10130                k: Sk::Str,
10131                req: true,
10132                der: false,
10133                swire: None,
10134            },
10135            Slot {
10136                k: Sk::Vec,
10137                req: true,
10138                der: false,
10139                swire: None,
10140            },
10141        ],
10142        _ => &[],
10143    }
10144}
10145
10146fn part_slots(n: &str) -> &'static [Slot] {
10147    match n {
10148        "ACTION" => &[
10149            Slot {
10150                k: Sk::Str,
10151                req: true,
10152                der: false,
10153                swire: None,
10154            },
10155            Slot {
10156                k: Sk::Str,
10157                req: false,
10158                der: false,
10159                swire: None,
10160            },
10161            Slot {
10162                k: Sk::Ref,
10163                req: true,
10164                der: false,
10165                swire: None,
10166            },
10167        ],
10168        "ACTION_METHOD" => &[
10169            Slot {
10170                k: Sk::Str,
10171                req: true,
10172                der: false,
10173                swire: None,
10174            },
10175            Slot {
10176                k: Sk::Str,
10177                req: false,
10178                der: false,
10179                swire: None,
10180            },
10181            Slot {
10182                k: Sk::Str,
10183                req: true,
10184                der: false,
10185                swire: None,
10186            },
10187            Slot {
10188                k: Sk::Str,
10189                req: true,
10190                der: false,
10191                swire: None,
10192            },
10193        ],
10194        "ACTION_METHOD_RELATIONSHIP" => &[
10195            Slot {
10196                k: Sk::Str,
10197                req: true,
10198                der: false,
10199                swire: None,
10200            },
10201            Slot {
10202                k: Sk::Str,
10203                req: false,
10204                der: false,
10205                swire: None,
10206            },
10207            Slot {
10208                k: Sk::Ref,
10209                req: true,
10210                der: false,
10211                swire: None,
10212            },
10213            Slot {
10214                k: Sk::Ref,
10215                req: true,
10216                der: false,
10217                swire: None,
10218            },
10219        ],
10220        "ACTION_RELATIONSHIP" => &[
10221            Slot {
10222                k: Sk::Str,
10223                req: true,
10224                der: false,
10225                swire: None,
10226            },
10227            Slot {
10228                k: Sk::Str,
10229                req: false,
10230                der: false,
10231                swire: None,
10232            },
10233            Slot {
10234                k: Sk::Ref,
10235                req: true,
10236                der: false,
10237                swire: None,
10238            },
10239            Slot {
10240                k: Sk::Ref,
10241                req: true,
10242                der: false,
10243                swire: None,
10244            },
10245        ],
10246        "ACTION_REQUEST_ASSIGNMENT" => &[Slot {
10247            k: Sk::Ref,
10248            req: true,
10249            der: false,
10250            swire: None,
10251        }],
10252        "ACTION_RESOURCE" => &[
10253            Slot {
10254                k: Sk::Str,
10255                req: true,
10256                der: false,
10257                swire: None,
10258            },
10259            Slot {
10260                k: Sk::Str,
10261                req: false,
10262                der: false,
10263                swire: None,
10264            },
10265            Slot {
10266                k: Sk::Vec,
10267                req: true,
10268                der: false,
10269                swire: None,
10270            },
10271            Slot {
10272                k: Sk::Ref,
10273                req: true,
10274                der: false,
10275                swire: None,
10276            },
10277        ],
10278        "ACTION_RESOURCE_REQUIREMENT" => &[
10279            Slot {
10280                k: Sk::Str,
10281                req: true,
10282                der: false,
10283                swire: None,
10284            },
10285            Slot {
10286                k: Sk::Str,
10287                req: true,
10288                der: false,
10289                swire: None,
10290            },
10291            Slot {
10292                k: Sk::Ref,
10293                req: true,
10294                der: false,
10295                swire: None,
10296            },
10297            Slot {
10298                k: Sk::Vec,
10299                req: true,
10300                der: false,
10301                swire: None,
10302            },
10303        ],
10304        "ADDRESS" => &[
10305            Slot {
10306                k: Sk::Str,
10307                req: false,
10308                der: false,
10309                swire: None,
10310            },
10311            Slot {
10312                k: Sk::Str,
10313                req: false,
10314                der: false,
10315                swire: None,
10316            },
10317            Slot {
10318                k: Sk::Str,
10319                req: false,
10320                der: false,
10321                swire: None,
10322            },
10323            Slot {
10324                k: Sk::Str,
10325                req: false,
10326                der: false,
10327                swire: None,
10328            },
10329            Slot {
10330                k: Sk::Str,
10331                req: false,
10332                der: false,
10333                swire: None,
10334            },
10335            Slot {
10336                k: Sk::Str,
10337                req: false,
10338                der: false,
10339                swire: None,
10340            },
10341            Slot {
10342                k: Sk::Str,
10343                req: false,
10344                der: false,
10345                swire: None,
10346            },
10347            Slot {
10348                k: Sk::Str,
10349                req: false,
10350                der: false,
10351                swire: None,
10352            },
10353            Slot {
10354                k: Sk::Str,
10355                req: false,
10356                der: false,
10357                swire: None,
10358            },
10359            Slot {
10360                k: Sk::Str,
10361                req: false,
10362                der: false,
10363                swire: None,
10364            },
10365            Slot {
10366                k: Sk::Str,
10367                req: false,
10368                der: false,
10369                swire: None,
10370            },
10371            Slot {
10372                k: Sk::Str,
10373                req: false,
10374                der: false,
10375                swire: None,
10376            },
10377        ],
10378        "ADVANCED_BREP_SHAPE_REPRESENTATION" => &[],
10379        "ADVANCED_FACE" => &[],
10380        "ANNOTATION_CURVE_OCCURRENCE" => &[],
10381        "ANNOTATION_FILL_AREA_OCCURRENCE" => &[Slot {
10382            k: Sk::Ref,
10383            req: true,
10384            der: false,
10385            swire: None,
10386        }],
10387        "ANNOTATION_OCCURRENCE" => &[],
10388        "ANNOTATION_OCCURRENCE_ASSOCIATIVITY" => &[],
10389        "ANNOTATION_OCCURRENCE_RELATIONSHIP" => &[
10390            Slot {
10391                k: Sk::Str,
10392                req: true,
10393                der: false,
10394                swire: None,
10395            },
10396            Slot {
10397                k: Sk::Str,
10398                req: true,
10399                der: false,
10400                swire: None,
10401            },
10402            Slot {
10403                k: Sk::Ref,
10404                req: true,
10405                der: false,
10406                swire: None,
10407            },
10408            Slot {
10409                k: Sk::Ref,
10410                req: true,
10411                der: false,
10412                swire: None,
10413            },
10414        ],
10415        "ANNOTATION_PLACEHOLDER_OCCURRENCE" => &[
10416            Slot {
10417                k: Sk::Enum,
10418                req: true,
10419                der: false,
10420                swire: None,
10421            },
10422            Slot {
10423                k: Sk::Real,
10424                req: true,
10425                der: false,
10426                swire: None,
10427            },
10428        ],
10429        "ANNOTATION_PLACEHOLDER_OCCURRENCE_WITH_LEADER_LINE" => &[Slot {
10430            k: Sk::Vec,
10431            req: true,
10432            der: false,
10433            swire: None,
10434        }],
10435        "ANNOTATION_PLANE" => &[Slot {
10436            k: Sk::Vec,
10437            req: false,
10438            der: false,
10439            swire: None,
10440        }],
10441        "ANNOTATION_SYMBOL" => &[],
10442        "ANNOTATION_SYMBOL_OCCURRENCE" => &[],
10443        "ANNOTATION_TEXT" => &[],
10444        "ANNOTATION_TEXT_CHARACTER" => &[Slot {
10445            k: Sk::Str,
10446            req: true,
10447            der: false,
10448            swire: None,
10449        }],
10450        "ANNOTATION_TEXT_OCCURRENCE" => &[],
10451        "APPLICATION_CONTEXT_ELEMENT" => &[
10452            Slot {
10453                k: Sk::Str,
10454                req: true,
10455                der: false,
10456                swire: None,
10457            },
10458            Slot {
10459                k: Sk::Ref,
10460                req: true,
10461                der: false,
10462                swire: None,
10463            },
10464        ],
10465        "APPLIED_APPROVAL_ASSIGNMENT" => &[Slot {
10466            k: Sk::Vec,
10467            req: true,
10468            der: false,
10469            swire: None,
10470        }],
10471        "APPLIED_DATE_AND_TIME_ASSIGNMENT" => &[Slot {
10472            k: Sk::Vec,
10473            req: true,
10474            der: false,
10475            swire: None,
10476        }],
10477        "APPLIED_DOCUMENT_REFERENCE" => &[Slot {
10478            k: Sk::Vec,
10479            req: true,
10480            der: false,
10481            swire: None,
10482        }],
10483        "APPLIED_EXTERNAL_IDENTIFICATION_ASSIGNMENT" => &[Slot {
10484            k: Sk::Vec,
10485            req: true,
10486            der: false,
10487            swire: None,
10488        }],
10489        "APPLIED_GROUP_ASSIGNMENT" => &[Slot {
10490            k: Sk::Vec,
10491            req: true,
10492            der: false,
10493            swire: None,
10494        }],
10495        "APPLIED_PERSON_AND_ORGANIZATION_ASSIGNMENT" => &[Slot {
10496            k: Sk::Vec,
10497            req: true,
10498            der: false,
10499            swire: None,
10500        }],
10501        "APPLIED_PRESENTED_ITEM" => &[Slot {
10502            k: Sk::Vec,
10503            req: true,
10504            der: false,
10505            swire: None,
10506        }],
10507        "APPLIED_SECURITY_CLASSIFICATION_ASSIGNMENT" => &[Slot {
10508            k: Sk::Vec,
10509            req: true,
10510            der: false,
10511            swire: None,
10512        }],
10513        "APPROVAL_ASSIGNMENT" => &[Slot {
10514            k: Sk::Ref,
10515            req: true,
10516            der: false,
10517            swire: None,
10518        }],
10519        "AREA_IN_SET" => &[
10520            Slot {
10521                k: Sk::Ref,
10522                req: true,
10523                der: false,
10524                swire: None,
10525            },
10526            Slot {
10527                k: Sk::Ref,
10528                req: true,
10529                der: false,
10530                swire: None,
10531            },
10532        ],
10533        "ASCRIBABLE_STATE_RELATIONSHIP" => &[
10534            Slot {
10535                k: Sk::Str,
10536                req: true,
10537                der: false,
10538                swire: None,
10539            },
10540            Slot {
10541                k: Sk::Str,
10542                req: false,
10543                der: false,
10544                swire: None,
10545            },
10546            Slot {
10547                k: Sk::Ref,
10548                req: true,
10549                der: false,
10550                swire: None,
10551            },
10552            Slot {
10553                k: Sk::Ref,
10554                req: true,
10555                der: false,
10556                swire: None,
10557            },
10558        ],
10559        "ASSEMBLY_COMPONENT_USAGE" => &[Slot {
10560            k: Sk::Str,
10561            req: false,
10562            der: false,
10563            swire: None,
10564        }],
10565        "B_SPLINE_CURVE" => &[
10566            Slot {
10567                k: Sk::Int,
10568                req: true,
10569                der: false,
10570                swire: None,
10571            },
10572            Slot {
10573                k: Sk::Vec,
10574                req: true,
10575                der: false,
10576                swire: None,
10577            },
10578            Slot {
10579                k: Sk::Enum,
10580                req: true,
10581                der: false,
10582                swire: None,
10583            },
10584            Slot {
10585                k: Sk::Log,
10586                req: true,
10587                der: false,
10588                swire: None,
10589            },
10590            Slot {
10591                k: Sk::Log,
10592                req: true,
10593                der: false,
10594                swire: None,
10595            },
10596        ],
10597        "B_SPLINE_CURVE_WITH_KNOTS" => &[
10598            Slot {
10599                k: Sk::Vec,
10600                req: true,
10601                der: false,
10602                swire: None,
10603            },
10604            Slot {
10605                k: Sk::Vec,
10606                req: true,
10607                der: false,
10608                swire: None,
10609            },
10610            Slot {
10611                k: Sk::Enum,
10612                req: true,
10613                der: false,
10614                swire: None,
10615            },
10616        ],
10617        "B_SPLINE_SURFACE" => &[
10618            Slot {
10619                k: Sk::Int,
10620                req: true,
10621                der: false,
10622                swire: None,
10623            },
10624            Slot {
10625                k: Sk::Int,
10626                req: true,
10627                der: false,
10628                swire: None,
10629            },
10630            Slot {
10631                k: Sk::Vec,
10632                req: true,
10633                der: false,
10634                swire: None,
10635            },
10636            Slot {
10637                k: Sk::Enum,
10638                req: true,
10639                der: false,
10640                swire: None,
10641            },
10642            Slot {
10643                k: Sk::Log,
10644                req: true,
10645                der: false,
10646                swire: None,
10647            },
10648            Slot {
10649                k: Sk::Log,
10650                req: true,
10651                der: false,
10652                swire: None,
10653            },
10654            Slot {
10655                k: Sk::Log,
10656                req: true,
10657                der: false,
10658                swire: None,
10659            },
10660        ],
10661        "B_SPLINE_SURFACE_WITH_KNOTS" => &[
10662            Slot {
10663                k: Sk::Vec,
10664                req: true,
10665                der: false,
10666                swire: None,
10667            },
10668            Slot {
10669                k: Sk::Vec,
10670                req: true,
10671                der: false,
10672                swire: None,
10673            },
10674            Slot {
10675                k: Sk::Vec,
10676                req: true,
10677                der: false,
10678                swire: None,
10679            },
10680            Slot {
10681                k: Sk::Vec,
10682                req: true,
10683                der: false,
10684                swire: None,
10685            },
10686            Slot {
10687                k: Sk::Enum,
10688                req: true,
10689                der: false,
10690                swire: None,
10691            },
10692        ],
10693        "BEZIER_CURVE" => &[],
10694        "BEZIER_SURFACE" => &[],
10695        "BOUNDED_CURVE" => &[],
10696        "BOUNDED_PCURVE" => &[],
10697        "BOUNDED_SURFACE" => &[],
10698        "BOUNDED_SURFACE_CURVE" => &[],
10699        "BREP_WITH_VOIDS" => &[Slot {
10700            k: Sk::Vec,
10701            req: true,
10702            der: false,
10703            swire: None,
10704        }],
10705        "CAMERA_IMAGE" => &[],
10706        "CAMERA_IMAGE_3D_WITH_SCALE" => &[],
10707        "CAMERA_MODEL" => &[],
10708        "CAMERA_MODEL_D3" => &[
10709            Slot {
10710                k: Sk::Ref,
10711                req: true,
10712                der: false,
10713                swire: None,
10714            },
10715            Slot {
10716                k: Sk::Ref,
10717                req: true,
10718                der: false,
10719                swire: None,
10720            },
10721        ],
10722        "CAMERA_MODEL_D3_MULTI_CLIPPING" => &[Slot {
10723            k: Sk::Vec,
10724            req: true,
10725            der: false,
10726            swire: None,
10727        }],
10728        "CAMERA_MODEL_D3_WITH_HLHSR" => &[Slot {
10729            k: Sk::Bool,
10730            req: true,
10731            der: false,
10732            swire: None,
10733        }],
10734        "CAMERA_USAGE" => &[],
10735        "CC_DESIGN_APPROVAL" => &[Slot {
10736            k: Sk::Vec,
10737            req: true,
10738            der: false,
10739            swire: None,
10740        }],
10741        "CC_DESIGN_DATE_AND_TIME_ASSIGNMENT" => &[Slot {
10742            k: Sk::Vec,
10743            req: true,
10744            der: false,
10745            swire: None,
10746        }],
10747        "CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT" => &[Slot {
10748            k: Sk::Vec,
10749            req: true,
10750            der: false,
10751            swire: None,
10752        }],
10753        "CC_DESIGN_SECURITY_CLASSIFICATION" => &[Slot {
10754            k: Sk::Vec,
10755            req: true,
10756            der: false,
10757            swire: None,
10758        }],
10759        "CHANGE_REQUEST" => &[Slot {
10760            k: Sk::Vec,
10761            req: true,
10762            der: false,
10763            swire: None,
10764        }],
10765        "CHARACTER_GLYPH_STYLE_OUTLINE" => &[Slot {
10766            k: Sk::Ref,
10767            req: true,
10768            der: false,
10769            swire: None,
10770        }],
10771        "CHARACTER_GLYPH_STYLE_STROKE" => &[Slot {
10772            k: Sk::Ref,
10773            req: true,
10774            der: false,
10775            swire: None,
10776        }],
10777        "CHARACTERIZED_ITEM_WITHIN_REPRESENTATION" => &[
10778            Slot {
10779                k: Sk::Ref,
10780                req: true,
10781                der: false,
10782                swire: None,
10783            },
10784            Slot {
10785                k: Sk::Ref,
10786                req: true,
10787                der: false,
10788                swire: None,
10789            },
10790        ],
10791        "CHARACTERIZED_OBJECT" => &[
10792            Slot {
10793                k: Sk::Str,
10794                req: false,
10795                der: false,
10796                swire: None,
10797            },
10798            Slot {
10799                k: Sk::Str,
10800                req: false,
10801                der: false,
10802                swire: None,
10803            },
10804        ],
10805        "CHARACTERIZED_REPRESENTATION" => &[],
10806        "CIRCULAR_RUNOUT_TOLERANCE" => &[],
10807        "CLOSED_SHELL" => &[],
10808        "COLOUR" => &[],
10809        "COLOUR_RGB" => &[
10810            Slot {
10811                k: Sk::Real,
10812                req: true,
10813                der: false,
10814                swire: None,
10815            },
10816            Slot {
10817                k: Sk::Real,
10818                req: true,
10819                der: false,
10820                swire: None,
10821            },
10822            Slot {
10823                k: Sk::Real,
10824                req: true,
10825                der: false,
10826                swire: None,
10827            },
10828        ],
10829        "COLOUR_SPECIFICATION" => &[Slot {
10830            k: Sk::Str,
10831            req: true,
10832            der: false,
10833            swire: None,
10834        }],
10835        "COMMON_DATUM" => &[],
10836        "COMPOSITE_CURVE" => &[
10837            Slot {
10838                k: Sk::Vec,
10839                req: true,
10840                der: false,
10841                swire: None,
10842            },
10843            Slot {
10844                k: Sk::Log,
10845                req: true,
10846                der: false,
10847                swire: None,
10848            },
10849        ],
10850        "COMPOSITE_CURVE_SEGMENT" => &[
10851            Slot {
10852                k: Sk::Enum,
10853                req: true,
10854                der: false,
10855                swire: None,
10856            },
10857            Slot {
10858                k: Sk::Bool,
10859                req: true,
10860                der: false,
10861                swire: None,
10862            },
10863            Slot {
10864                k: Sk::Ref,
10865                req: true,
10866                der: false,
10867                swire: None,
10868            },
10869        ],
10870        "COMPOSITE_GROUP_SHAPE_ASPECT" => &[],
10871        "COMPOSITE_SHAPE_ASPECT" => &[],
10872        "COMPOSITE_TEXT" => &[Slot {
10873            k: Sk::Vec,
10874            req: true,
10875            der: false,
10876            swire: None,
10877        }],
10878        "COMPOUND_REPRESENTATION_ITEM" => &[Slot {
10879            k: Sk::Ref,
10880            req: true,
10881            der: false,
10882            swire: None,
10883        }],
10884        "CONFIGURATION_EFFECTIVITY" => &[Slot {
10885            k: Sk::Ref,
10886            req: true,
10887            der: false,
10888            swire: None,
10889        }],
10890        "CONFIGURATION_ITEM" => &[
10891            Slot {
10892                k: Sk::Str,
10893                req: true,
10894                der: false,
10895                swire: None,
10896            },
10897            Slot {
10898                k: Sk::Str,
10899                req: true,
10900                der: false,
10901                swire: None,
10902            },
10903            Slot {
10904                k: Sk::Str,
10905                req: false,
10906                der: false,
10907                swire: None,
10908            },
10909            Slot {
10910                k: Sk::Ref,
10911                req: true,
10912                der: false,
10913                swire: None,
10914            },
10915            Slot {
10916                k: Sk::Str,
10917                req: false,
10918                der: false,
10919                swire: None,
10920            },
10921        ],
10922        "CONNECTED_FACE_SET" => &[Slot {
10923            k: Sk::Vec,
10924            req: false,
10925            der: false,
10926            swire: None,
10927        }],
10928        "CONSTRUCTIVE_GEOMETRY_REPRESENTATION_RELATIONSHIP" => &[],
10929        "CONTEXT_DEPENDENT_OVER_RIDING_STYLED_ITEM" => &[Slot {
10930            k: Sk::Vec,
10931            req: true,
10932            der: false,
10933            swire: None,
10934        }],
10935        "CONTEXT_DEPENDENT_UNIT" => &[Slot {
10936            k: Sk::Str,
10937            req: true,
10938            der: false,
10939            swire: None,
10940        }],
10941        "CONVERSION_BASED_UNIT" => &[
10942            Slot {
10943                k: Sk::Str,
10944                req: true,
10945                der: false,
10946                swire: None,
10947            },
10948            Slot {
10949                k: Sk::Ref,
10950                req: true,
10951                der: false,
10952                swire: None,
10953            },
10954        ],
10955        "CURVE" => &[],
10956        "CURVE_STYLE" => &[
10957            Slot {
10958                k: Sk::Str,
10959                req: true,
10960                der: false,
10961                swire: None,
10962            },
10963            Slot {
10964                k: Sk::Ref,
10965                req: false,
10966                der: false,
10967                swire: None,
10968            },
10969            Slot {
10970                k: Sk::Ref,
10971                req: false,
10972                der: false,
10973                swire: None,
10974            },
10975            Slot {
10976                k: Sk::Ref,
10977                req: false,
10978                der: false,
10979                swire: None,
10980            },
10981        ],
10982        "CURVE_STYLE_FONT" => &[
10983            Slot {
10984                k: Sk::Str,
10985                req: true,
10986                der: false,
10987                swire: None,
10988            },
10989            Slot {
10990                k: Sk::Vec,
10991                req: true,
10992                der: false,
10993                swire: None,
10994            },
10995        ],
10996        "CURVE_STYLE_FONT_AND_SCALING" => &[
10997            Slot {
10998                k: Sk::Str,
10999                req: true,
11000                der: false,
11001                swire: None,
11002            },
11003            Slot {
11004                k: Sk::Ref,
11005                req: true,
11006                der: false,
11007                swire: None,
11008            },
11009            Slot {
11010                k: Sk::Real,
11011                req: true,
11012                der: false,
11013                swire: None,
11014            },
11015        ],
11016        "CURVE_STYLE_FONT_PATTERN" => &[
11017            Slot {
11018                k: Sk::Real,
11019                req: true,
11020                der: false,
11021                swire: None,
11022            },
11023            Slot {
11024                k: Sk::Real,
11025                req: true,
11026                der: false,
11027                swire: None,
11028            },
11029        ],
11030        "CYLINDRICITY_TOLERANCE" => &[],
11031        "DATE" => &[Slot {
11032            k: Sk::Int,
11033            req: true,
11034            der: false,
11035            swire: None,
11036        }],
11037        "DATE_AND_TIME" => &[
11038            Slot {
11039                k: Sk::Ref,
11040                req: true,
11041                der: false,
11042                swire: None,
11043            },
11044            Slot {
11045                k: Sk::Ref,
11046                req: true,
11047                der: false,
11048                swire: None,
11049            },
11050        ],
11051        "DATE_AND_TIME_ASSIGNMENT" => &[
11052            Slot {
11053                k: Sk::Ref,
11054                req: true,
11055                der: false,
11056                swire: None,
11057            },
11058            Slot {
11059                k: Sk::Ref,
11060                req: true,
11061                der: false,
11062                swire: None,
11063            },
11064        ],
11065        "DATUM" => &[Slot {
11066            k: Sk::Str,
11067            req: true,
11068            der: false,
11069            swire: None,
11070        }],
11071        "DATUM_FEATURE" => &[],
11072        "DATUM_REFERENCE" => &[
11073            Slot {
11074                k: Sk::Int,
11075                req: true,
11076                der: false,
11077                swire: None,
11078            },
11079            Slot {
11080                k: Sk::Ref,
11081                req: true,
11082                der: false,
11083                swire: None,
11084            },
11085        ],
11086        "DATUM_SYSTEM" => &[Slot {
11087            k: Sk::Vec,
11088            req: true,
11089            der: false,
11090            swire: None,
11091        }],
11092        "DATUM_TARGET" => &[Slot {
11093            k: Sk::Str,
11094            req: true,
11095            der: false,
11096            swire: None,
11097        }],
11098        "DEFAULT_MODEL_GEOMETRIC_VIEW" => &[],
11099        "DEFINITIONAL_REPRESENTATION" => &[],
11100        "DEFINITIONAL_REPRESENTATION_RELATIONSHIP" => &[],
11101        "DEFINITIONAL_REPRESENTATION_RELATIONSHIP_WITH_SAME_CONTEXT" => &[],
11102        "DEGENERATE_TOROIDAL_SURFACE" => &[Slot {
11103            k: Sk::Bool,
11104            req: true,
11105            der: false,
11106            swire: None,
11107        }],
11108        "DERIVED_UNIT" => &[Slot {
11109            k: Sk::Vec,
11110            req: true,
11111            der: false,
11112            swire: None,
11113        }],
11114        "DESIGN_CONTEXT" => &[],
11115        "DIMENSIONAL_SIZE" => &[
11116            Slot {
11117                k: Sk::Ref,
11118                req: true,
11119                der: false,
11120                swire: None,
11121            },
11122            Slot {
11123                k: Sk::Str,
11124                req: true,
11125                der: false,
11126                swire: None,
11127            },
11128        ],
11129        "DIRECTION" => &[Slot {
11130            k: Sk::Vec,
11131            req: true,
11132            der: false,
11133            swire: None,
11134        }],
11135        "DOCUMENT" => &[
11136            Slot {
11137                k: Sk::Str,
11138                req: true,
11139                der: false,
11140                swire: None,
11141            },
11142            Slot {
11143                k: Sk::Str,
11144                req: true,
11145                der: false,
11146                swire: None,
11147            },
11148            Slot {
11149                k: Sk::Str,
11150                req: false,
11151                der: false,
11152                swire: None,
11153            },
11154            Slot {
11155                k: Sk::Ref,
11156                req: true,
11157                der: false,
11158                swire: None,
11159            },
11160        ],
11161        "DOCUMENT_FILE" => &[],
11162        "DOCUMENT_PRODUCT_ASSOCIATION" => &[
11163            Slot {
11164                k: Sk::Str,
11165                req: true,
11166                der: false,
11167                swire: None,
11168            },
11169            Slot {
11170                k: Sk::Str,
11171                req: false,
11172                der: false,
11173                swire: None,
11174            },
11175            Slot {
11176                k: Sk::Ref,
11177                req: true,
11178                der: false,
11179                swire: None,
11180            },
11181            Slot {
11182                k: Sk::Ref,
11183                req: true,
11184                der: false,
11185                swire: None,
11186            },
11187        ],
11188        "DOCUMENT_PRODUCT_EQUIVALENCE" => &[],
11189        "DOCUMENT_REFERENCE" => &[
11190            Slot {
11191                k: Sk::Ref,
11192                req: true,
11193                der: false,
11194                swire: None,
11195            },
11196            Slot {
11197                k: Sk::Str,
11198                req: true,
11199                der: false,
11200                swire: None,
11201            },
11202        ],
11203        "DRAUGHTING_ANNOTATION_OCCURRENCE" => &[],
11204        "DRAUGHTING_CALLOUT" => &[Slot {
11205            k: Sk::Vec,
11206            req: true,
11207            der: false,
11208            swire: None,
11209        }],
11210        "DRAUGHTING_CALLOUT_RELATIONSHIP" => &[
11211            Slot {
11212                k: Sk::Str,
11213                req: true,
11214                der: false,
11215                swire: None,
11216            },
11217            Slot {
11218                k: Sk::Str,
11219                req: true,
11220                der: false,
11221                swire: None,
11222            },
11223            Slot {
11224                k: Sk::Ref,
11225                req: true,
11226                der: false,
11227                swire: None,
11228            },
11229            Slot {
11230                k: Sk::Ref,
11231                req: true,
11232                der: false,
11233                swire: None,
11234            },
11235        ],
11236        "DRAUGHTING_MODEL" => &[],
11237        "DRAUGHTING_MODEL_ITEM_ASSOCIATION" => &[],
11238        "DRAUGHTING_MODEL_ITEM_ASSOCIATION_WITH_PLACEHOLDER" => &[Slot {
11239            k: Sk::Ref,
11240            req: true,
11241            der: false,
11242            swire: None,
11243        }],
11244        "DRAUGHTING_PRE_DEFINED_COLOUR" => &[],
11245        "DRAUGHTING_PRE_DEFINED_CURVE_FONT" => &[],
11246        "DRAUGHTING_PRE_DEFINED_TEXT_FONT" => &[],
11247        "EDGE" => &[
11248            Slot {
11249                k: Sk::Ref,
11250                req: false,
11251                der: false,
11252                swire: None,
11253            },
11254            Slot {
11255                k: Sk::Ref,
11256                req: false,
11257                der: false,
11258                swire: None,
11259            },
11260        ],
11261        "EDGE_CURVE" => &[
11262            Slot {
11263                k: Sk::Ref,
11264                req: true,
11265                der: false,
11266                swire: None,
11267            },
11268            Slot {
11269                k: Sk::Bool,
11270                req: true,
11271                der: false,
11272                swire: None,
11273            },
11274        ],
11275        "EDGE_LOOP" => &[],
11276        "EFFECTIVITY" => &[Slot {
11277            k: Sk::Str,
11278            req: true,
11279            der: false,
11280            swire: None,
11281        }],
11282        "ELEMENTARY_SURFACE" => &[Slot {
11283            k: Sk::Ref,
11284            req: true,
11285            der: false,
11286            swire: None,
11287        }],
11288        "EXPRESSION" => &[],
11289        "EXTERNAL_IDENTIFICATION_ASSIGNMENT" => &[Slot {
11290            k: Sk::Ref,
11291            req: true,
11292            der: false,
11293            swire: None,
11294        }],
11295        "EXTERNAL_SOURCE" => &[Slot {
11296            k: Sk::Str,
11297            req: true,
11298            der: false,
11299            swire: None,
11300        }],
11301        "EXTERNALLY_DEFINED_CHARACTER_GLYPH" => &[],
11302        "EXTERNALLY_DEFINED_CURVE_FONT" => &[],
11303        "EXTERNALLY_DEFINED_HATCH_STYLE" => &[],
11304        "EXTERNALLY_DEFINED_ITEM" => &[
11305            Slot {
11306                k: Sk::Str,
11307                req: true,
11308                der: false,
11309                swire: None,
11310            },
11311            Slot {
11312                k: Sk::Ref,
11313                req: true,
11314                der: false,
11315                swire: None,
11316            },
11317        ],
11318        "EXTERNALLY_DEFINED_STYLE" => &[],
11319        "EXTERNALLY_DEFINED_SYMBOL" => &[],
11320        "EXTERNALLY_DEFINED_TEXT_FONT" => &[],
11321        "EXTERNALLY_DEFINED_TILE" => &[],
11322        "EXTERNALLY_DEFINED_TILE_STYLE" => &[],
11323        "FACE" => &[Slot {
11324            k: Sk::Vec,
11325            req: true,
11326            der: false,
11327            swire: None,
11328        }],
11329        "FACE_BOUND" => &[
11330            Slot {
11331                k: Sk::Ref,
11332                req: true,
11333                der: false,
11334                swire: None,
11335            },
11336            Slot {
11337                k: Sk::Bool,
11338                req: true,
11339                der: false,
11340                swire: None,
11341            },
11342        ],
11343        "FACE_OUTER_BOUND" => &[],
11344        "FACE_SURFACE" => &[
11345            Slot {
11346                k: Sk::Ref,
11347                req: true,
11348                der: false,
11349                swire: None,
11350            },
11351            Slot {
11352                k: Sk::Bool,
11353                req: true,
11354                der: false,
11355                swire: None,
11356            },
11357        ],
11358        "FILL_AREA_STYLE" => &[
11359            Slot {
11360                k: Sk::Str,
11361                req: true,
11362                der: false,
11363                swire: None,
11364            },
11365            Slot {
11366                k: Sk::Vec,
11367                req: true,
11368                der: false,
11369                swire: None,
11370            },
11371        ],
11372        "FILL_AREA_STYLE_HATCHING" => &[
11373            Slot {
11374                k: Sk::Ref,
11375                req: true,
11376                der: false,
11377                swire: None,
11378            },
11379            Slot {
11380                k: Sk::Ref,
11381                req: true,
11382                der: false,
11383                swire: None,
11384            },
11385            Slot {
11386                k: Sk::Ref,
11387                req: true,
11388                der: false,
11389                swire: None,
11390            },
11391            Slot {
11392                k: Sk::Ref,
11393                req: true,
11394                der: false,
11395                swire: None,
11396            },
11397            Slot {
11398                k: Sk::Real,
11399                req: true,
11400                der: false,
11401                swire: None,
11402            },
11403        ],
11404        "FILL_AREA_STYLE_TILE_SYMBOL_WITH_STYLE" => &[Slot {
11405            k: Sk::Ref,
11406            req: true,
11407            der: false,
11408            swire: None,
11409        }],
11410        "FILL_AREA_STYLE_TILES" => &[
11411            Slot {
11412                k: Sk::Ref,
11413                req: true,
11414                der: false,
11415                swire: None,
11416            },
11417            Slot {
11418                k: Sk::Vec,
11419                req: true,
11420                der: false,
11421                swire: None,
11422            },
11423            Slot {
11424                k: Sk::Real,
11425                req: true,
11426                der: false,
11427                swire: None,
11428            },
11429        ],
11430        "FLATNESS_TOLERANCE" => &[],
11431        "FOUNDED_ITEM" => &[],
11432        "FUNCTIONALLY_DEFINED_TRANSFORMATION" => &[
11433            Slot {
11434                k: Sk::Str,
11435                req: true,
11436                der: false,
11437                swire: None,
11438            },
11439            Slot {
11440                k: Sk::Str,
11441                req: false,
11442                der: false,
11443                swire: None,
11444            },
11445        ],
11446        "GENERAL_DATUM_REFERENCE" => &[
11447            Slot {
11448                k: Sk::Ref,
11449                req: true,
11450                der: false,
11451                swire: None,
11452            },
11453            Slot {
11454                k: Sk::Vec,
11455                req: false,
11456                der: false,
11457                swire: None,
11458            },
11459        ],
11460        "GENERAL_PROPERTY" => &[
11461            Slot {
11462                k: Sk::Str,
11463                req: true,
11464                der: false,
11465                swire: None,
11466            },
11467            Slot {
11468                k: Sk::Str,
11469                req: true,
11470                der: false,
11471                swire: None,
11472            },
11473            Slot {
11474                k: Sk::Str,
11475                req: false,
11476                der: false,
11477                swire: None,
11478            },
11479        ],
11480        "GENERIC_EXPRESSION" => &[],
11481        "GENERIC_LITERAL" => &[],
11482        "GENERIC_PRODUCT_DEFINITION_REFERENCE" => &[Slot {
11483            k: Sk::Ref,
11484            req: true,
11485            der: false,
11486            swire: None,
11487        }],
11488        "GEOMETRIC_CURVE_SET" => &[],
11489        "GEOMETRIC_ITEM_SPECIFIC_USAGE" => &[],
11490        "GEOMETRIC_REPRESENTATION_CONTEXT" => &[Slot {
11491            k: Sk::Int,
11492            req: true,
11493            der: false,
11494            swire: None,
11495        }],
11496        "GEOMETRIC_REPRESENTATION_ITEM" => &[],
11497        "GEOMETRIC_SET" => &[Slot {
11498            k: Sk::Vec,
11499            req: true,
11500            der: false,
11501            swire: None,
11502        }],
11503        "GEOMETRIC_TOLERANCE" => &[
11504            Slot {
11505                k: Sk::Str,
11506                req: true,
11507                der: false,
11508                swire: None,
11509            },
11510            Slot {
11511                k: Sk::Str,
11512                req: false,
11513                der: false,
11514                swire: None,
11515            },
11516            Slot {
11517                k: Sk::Ref,
11518                req: false,
11519                der: false,
11520                swire: None,
11521            },
11522            Slot {
11523                k: Sk::Ref,
11524                req: true,
11525                der: false,
11526                swire: None,
11527            },
11528        ],
11529        "GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE" => &[Slot {
11530            k: Sk::Vec,
11531            req: true,
11532            der: false,
11533            swire: None,
11534        }],
11535        "GEOMETRIC_TOLERANCE_WITH_DEFINED_AREA_UNIT" => &[
11536            Slot {
11537                k: Sk::Enum,
11538                req: true,
11539                der: false,
11540                swire: None,
11541            },
11542            Slot {
11543                k: Sk::Ref,
11544                req: false,
11545                der: false,
11546                swire: None,
11547            },
11548        ],
11549        "GEOMETRIC_TOLERANCE_WITH_DEFINED_UNIT" => &[Slot {
11550            k: Sk::Ref,
11551            req: true,
11552            der: false,
11553            swire: None,
11554        }],
11555        "GEOMETRIC_TOLERANCE_WITH_MAXIMUM_TOLERANCE" => &[Slot {
11556            k: Sk::Ref,
11557            req: true,
11558            der: false,
11559            swire: None,
11560        }],
11561        "GEOMETRIC_TOLERANCE_WITH_MODIFIERS" => &[Slot {
11562            k: Sk::Vec,
11563            req: true,
11564            der: false,
11565            swire: None,
11566        }],
11567        "GEOMETRICALLY_BOUNDED_SURFACE_SHAPE_REPRESENTATION" => &[],
11568        "GEOMETRICALLY_BOUNDED_WIREFRAME_SHAPE_REPRESENTATION" => &[],
11569        "GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT" => &[Slot {
11570            k: Sk::Vec,
11571            req: true,
11572            der: false,
11573            swire: None,
11574        }],
11575        "GLOBAL_UNIT_ASSIGNED_CONTEXT" => &[Slot {
11576            k: Sk::Vec,
11577            req: true,
11578            der: false,
11579            swire: None,
11580        }],
11581        "GROUP" => &[
11582            Slot {
11583                k: Sk::Str,
11584                req: true,
11585                der: false,
11586                swire: None,
11587            },
11588            Slot {
11589                k: Sk::Str,
11590                req: false,
11591                der: false,
11592                swire: None,
11593            },
11594        ],
11595        "GROUP_ASSIGNMENT" => &[Slot {
11596            k: Sk::Ref,
11597            req: true,
11598            der: false,
11599            swire: None,
11600        }],
11601        "IDENTIFICATION_ASSIGNMENT" => &[
11602            Slot {
11603                k: Sk::Str,
11604                req: true,
11605                der: false,
11606                swire: None,
11607            },
11608            Slot {
11609                k: Sk::Ref,
11610                req: true,
11611                der: false,
11612                swire: None,
11613            },
11614        ],
11615        "INT_LITERAL" => &[],
11616        "INTEGER_REPRESENTATION_ITEM" => &[],
11617        "INTERSECTION_CURVE" => &[],
11618        "INVISIBILITY" => &[Slot {
11619            k: Sk::Vec,
11620            req: true,
11621            der: false,
11622            swire: None,
11623        }],
11624        "ITEM_DEFINED_TRANSFORMATION" => &[
11625            Slot {
11626                k: Sk::Str,
11627                req: true,
11628                der: false,
11629                swire: None,
11630            },
11631            Slot {
11632                k: Sk::Str,
11633                req: false,
11634                der: false,
11635                swire: None,
11636            },
11637            Slot {
11638                k: Sk::Ref,
11639                req: true,
11640                der: false,
11641                swire: None,
11642            },
11643            Slot {
11644                k: Sk::Ref,
11645                req: true,
11646                der: false,
11647                swire: None,
11648            },
11649        ],
11650        "ITEM_IDENTIFIED_REPRESENTATION_USAGE" => &[
11651            Slot {
11652                k: Sk::Str,
11653                req: true,
11654                der: false,
11655                swire: None,
11656            },
11657            Slot {
11658                k: Sk::Str,
11659                req: false,
11660                der: false,
11661                swire: None,
11662            },
11663            Slot {
11664                k: Sk::Ref,
11665                req: true,
11666                der: false,
11667                swire: None,
11668            },
11669            Slot {
11670                k: Sk::Ref,
11671                req: true,
11672                der: false,
11673                swire: None,
11674            },
11675            Slot {
11676                k: Sk::Ref,
11677                req: true,
11678                der: false,
11679                swire: None,
11680            },
11681        ],
11682        "LEADER_CURVE" => &[],
11683        "LEADER_DIRECTED_CALLOUT" => &[],
11684        "LEADER_TERMINATOR" => &[],
11685        "LENGTH_MEASURE_WITH_UNIT" => &[],
11686        "LENGTH_UNIT" => &[],
11687        "LINE_PROFILE_TOLERANCE" => &[],
11688        "LITERAL_NUMBER" => &[Slot {
11689            k: Sk::Real,
11690            req: true,
11691            der: false,
11692            swire: None,
11693        }],
11694        "LOOP" => &[],
11695        "MANIFOLD_SOLID_BREP" => &[Slot {
11696            k: Sk::Ref,
11697            req: true,
11698            der: false,
11699            swire: None,
11700        }],
11701        "MANIFOLD_SURFACE_SHAPE_REPRESENTATION" => &[],
11702        "MAPPED_ITEM" => &[
11703            Slot {
11704                k: Sk::Ref,
11705                req: true,
11706                der: false,
11707                swire: None,
11708            },
11709            Slot {
11710                k: Sk::Ref,
11711                req: true,
11712                der: false,
11713                swire: None,
11714            },
11715        ],
11716        "MASS_UNIT" => &[],
11717        "MEASURE_REPRESENTATION_ITEM" => &[],
11718        "MEASURE_WITH_UNIT" => &[
11719            Slot {
11720                k: Sk::Meas,
11721                req: true,
11722                der: false,
11723                swire: None,
11724            },
11725            Slot {
11726                k: Sk::Ref,
11727                req: true,
11728                der: false,
11729                swire: None,
11730            },
11731        ],
11732        "MECHANICAL_CONTEXT" => &[],
11733        "MECHANICAL_DESIGN_AND_DRAUGHTING_RELATIONSHIP" => &[],
11734        "MODEL_GEOMETRIC_VIEW" => &[],
11735        "MODIFIED_GEOMETRIC_TOLERANCE" => &[Slot {
11736            k: Sk::Enum,
11737            req: true,
11738            der: false,
11739            swire: None,
11740        }],
11741        "NAMED_UNIT" => &[Slot {
11742            k: Sk::Ref,
11743            req: false,
11744            der: false,
11745            swire: None,
11746        }],
11747        "NEXT_ASSEMBLY_USAGE_OCCURRENCE" => &[],
11748        "NUMERIC_EXPRESSION" => &[],
11749        "ONE_DIRECTION_REPEAT_FACTOR" => &[Slot {
11750            k: Sk::Ref,
11751            req: true,
11752            der: false,
11753            swire: None,
11754        }],
11755        "OPEN_SHELL" => &[],
11756        "ORGANIZATIONAL_ADDRESS" => &[
11757            Slot {
11758                k: Sk::Vec,
11759                req: true,
11760                der: false,
11761                swire: None,
11762            },
11763            Slot {
11764                k: Sk::Str,
11765                req: false,
11766                der: false,
11767                swire: None,
11768            },
11769        ],
11770        "ORIENTED_CLOSED_SHELL" => &[
11771            Slot {
11772                k: Sk::Ref,
11773                req: true,
11774                der: false,
11775                swire: None,
11776            },
11777            Slot {
11778                k: Sk::Bool,
11779                req: true,
11780                der: false,
11781                swire: None,
11782            },
11783        ],
11784        "ORIENTED_EDGE" => &[
11785            Slot {
11786                k: Sk::Ref,
11787                req: true,
11788                der: false,
11789                swire: None,
11790            },
11791            Slot {
11792                k: Sk::Bool,
11793                req: true,
11794                der: false,
11795                swire: None,
11796            },
11797        ],
11798        "OVER_RIDING_STYLED_ITEM" => &[Slot {
11799            k: Sk::Ref,
11800            req: true,
11801            der: false,
11802            swire: None,
11803        }],
11804        "PARALLELISM_TOLERANCE" => &[],
11805        "PARAMETRIC_REPRESENTATION_CONTEXT" => &[],
11806        "PATH" => &[Slot {
11807            k: Sk::Vec,
11808            req: true,
11809            der: false,
11810            swire: None,
11811        }],
11812        "PCURVE" => &[
11813            Slot {
11814                k: Sk::Ref,
11815                req: true,
11816                der: false,
11817                swire: None,
11818            },
11819            Slot {
11820                k: Sk::Ref,
11821                req: true,
11822                der: false,
11823                swire: None,
11824            },
11825        ],
11826        "PERPENDICULARITY_TOLERANCE" => &[],
11827        "PERSON_AND_ORGANIZATION_ADDRESS" => &[],
11828        "PERSON_AND_ORGANIZATION_ASSIGNMENT" => &[
11829            Slot {
11830                k: Sk::Ref,
11831                req: true,
11832                der: false,
11833                swire: None,
11834            },
11835            Slot {
11836                k: Sk::Ref,
11837                req: true,
11838                der: false,
11839                swire: None,
11840            },
11841        ],
11842        "PERSONAL_ADDRESS" => &[
11843            Slot {
11844                k: Sk::Vec,
11845                req: true,
11846                der: false,
11847                swire: None,
11848            },
11849            Slot {
11850                k: Sk::Str,
11851                req: false,
11852                der: false,
11853                swire: None,
11854            },
11855        ],
11856        "PLACED_DATUM_TARGET_FEATURE" => &[],
11857        "PLACEMENT" => &[Slot {
11858            k: Sk::Ref,
11859            req: true,
11860            der: false,
11861            swire: None,
11862        }],
11863        "PLANAR_BOX" => &[Slot {
11864            k: Sk::Ref,
11865            req: true,
11866            der: false,
11867            swire: None,
11868        }],
11869        "PLANAR_EXTENT" => &[
11870            Slot {
11871                k: Sk::Real,
11872                req: true,
11873                der: false,
11874                swire: None,
11875            },
11876            Slot {
11877                k: Sk::Real,
11878                req: true,
11879                der: false,
11880                swire: None,
11881            },
11882        ],
11883        "PLANE_ANGLE_MEASURE_WITH_UNIT" => &[],
11884        "PLANE_ANGLE_UNIT" => &[],
11885        "POINT" => &[],
11886        "POINT_STYLE" => &[
11887            Slot {
11888                k: Sk::Str,
11889                req: true,
11890                der: false,
11891                swire: None,
11892            },
11893            Slot {
11894                k: Sk::Ref,
11895                req: false,
11896                der: false,
11897                swire: None,
11898            },
11899            Slot {
11900                k: Sk::Ref,
11901                req: false,
11902                der: false,
11903                swire: None,
11904            },
11905            Slot {
11906                k: Sk::Ref,
11907                req: false,
11908                der: false,
11909                swire: None,
11910            },
11911        ],
11912        "POLY_LOOP" => &[Slot {
11913            k: Sk::Vec,
11914            req: true,
11915            der: false,
11916            swire: None,
11917        }],
11918        "POSITION_TOLERANCE" => &[],
11919        "PRE_DEFINED_CHARACTER_GLYPH" => &[],
11920        "PRE_DEFINED_COLOUR" => &[],
11921        "PRE_DEFINED_CURVE_FONT" => &[],
11922        "PRE_DEFINED_ITEM" => &[Slot {
11923            k: Sk::Str,
11924            req: true,
11925            der: false,
11926            swire: None,
11927        }],
11928        "PRE_DEFINED_MARKER" => &[],
11929        "PRE_DEFINED_POINT_MARKER_SYMBOL" => &[],
11930        "PRE_DEFINED_PRESENTATION_STYLE" => &[],
11931        "PRE_DEFINED_SURFACE_SIDE_STYLE" => &[],
11932        "PRE_DEFINED_SYMBOL" => &[],
11933        "PRE_DEFINED_TERMINATOR_SYMBOL" => &[],
11934        "PRE_DEFINED_TEXT_FONT" => &[],
11935        "PRE_DEFINED_TILE" => &[],
11936        "PRESENTATION_AREA" => &[],
11937        "PRESENTATION_REPRESENTATION" => &[],
11938        "PRESENTATION_SET" => &[],
11939        "PRESENTATION_STYLE_ASSIGNMENT" => &[Slot {
11940            k: Sk::Vec,
11941            req: true,
11942            der: false,
11943            swire: None,
11944        }],
11945        "PRESENTATION_STYLE_BY_CONTEXT" => &[Slot {
11946            k: Sk::Ref,
11947            req: true,
11948            der: false,
11949            swire: None,
11950        }],
11951        "PRESENTATION_VIEW" => &[],
11952        "PRESENTED_ITEM" => &[],
11953        "PRODUCT" => &[
11954            Slot {
11955                k: Sk::Str,
11956                req: true,
11957                der: false,
11958                swire: None,
11959            },
11960            Slot {
11961                k: Sk::Str,
11962                req: true,
11963                der: false,
11964                swire: None,
11965            },
11966            Slot {
11967                k: Sk::Str,
11968                req: false,
11969                der: false,
11970                swire: None,
11971            },
11972            Slot {
11973                k: Sk::Vec,
11974                req: true,
11975                der: false,
11976                swire: None,
11977            },
11978        ],
11979        "PRODUCT_CATEGORY" => &[
11980            Slot {
11981                k: Sk::Str,
11982                req: true,
11983                der: false,
11984                swire: None,
11985            },
11986            Slot {
11987                k: Sk::Str,
11988                req: false,
11989                der: false,
11990                swire: None,
11991            },
11992        ],
11993        "PRODUCT_CONCEPT" => &[
11994            Slot {
11995                k: Sk::Str,
11996                req: true,
11997                der: false,
11998                swire: None,
11999            },
12000            Slot {
12001                k: Sk::Str,
12002                req: true,
12003                der: false,
12004                swire: None,
12005            },
12006            Slot {
12007                k: Sk::Str,
12008                req: false,
12009                der: false,
12010                swire: None,
12011            },
12012            Slot {
12013                k: Sk::Ref,
12014                req: true,
12015                der: false,
12016                swire: None,
12017            },
12018        ],
12019        "PRODUCT_CONCEPT_FEATURE" => &[
12020            Slot {
12021                k: Sk::Str,
12022                req: true,
12023                der: false,
12024                swire: None,
12025            },
12026            Slot {
12027                k: Sk::Str,
12028                req: true,
12029                der: false,
12030                swire: None,
12031            },
12032            Slot {
12033                k: Sk::Str,
12034                req: false,
12035                der: false,
12036                swire: None,
12037            },
12038        ],
12039        "PRODUCT_CONCEPT_FEATURE_CATEGORY" => &[],
12040        "PRODUCT_CONTEXT" => &[Slot {
12041            k: Sk::Str,
12042            req: true,
12043            der: false,
12044            swire: None,
12045        }],
12046        "PRODUCT_DEFINITION" => &[
12047            Slot {
12048                k: Sk::Str,
12049                req: true,
12050                der: false,
12051                swire: None,
12052            },
12053            Slot {
12054                k: Sk::Str,
12055                req: false,
12056                der: false,
12057                swire: None,
12058            },
12059            Slot {
12060                k: Sk::Ref,
12061                req: true,
12062                der: false,
12063                swire: None,
12064            },
12065            Slot {
12066                k: Sk::Ref,
12067                req: true,
12068                der: false,
12069                swire: None,
12070            },
12071        ],
12072        "PRODUCT_DEFINITION_CONTEXT" => &[Slot {
12073            k: Sk::Str,
12074            req: true,
12075            der: false,
12076            swire: None,
12077        }],
12078        "PRODUCT_DEFINITION_EFFECTIVITY" => &[Slot {
12079            k: Sk::Ref,
12080            req: true,
12081            der: false,
12082            swire: None,
12083        }],
12084        "PRODUCT_DEFINITION_FORMATION" => &[
12085            Slot {
12086                k: Sk::Str,
12087                req: true,
12088                der: false,
12089                swire: None,
12090            },
12091            Slot {
12092                k: Sk::Str,
12093                req: false,
12094                der: false,
12095                swire: None,
12096            },
12097            Slot {
12098                k: Sk::Ref,
12099                req: true,
12100                der: false,
12101                swire: None,
12102            },
12103        ],
12104        "PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE" => &[Slot {
12105            k: Sk::Enum,
12106            req: true,
12107            der: false,
12108            swire: None,
12109        }],
12110        "PRODUCT_DEFINITION_OCCURRENCE" => &[
12111            Slot {
12112                k: Sk::Str,
12113                req: true,
12114                der: false,
12115                swire: None,
12116            },
12117            Slot {
12118                k: Sk::Str,
12119                req: false,
12120                der: false,
12121                swire: None,
12122            },
12123            Slot {
12124                k: Sk::Str,
12125                req: false,
12126                der: false,
12127                swire: None,
12128            },
12129            Slot {
12130                k: Sk::Ref,
12131                req: false,
12132                der: false,
12133                swire: None,
12134            },
12135            Slot {
12136                k: Sk::Ref,
12137                req: false,
12138                der: false,
12139                swire: None,
12140            },
12141        ],
12142        "PRODUCT_DEFINITION_RELATIONSHIP" => &[
12143            Slot {
12144                k: Sk::Str,
12145                req: true,
12146                der: false,
12147                swire: None,
12148            },
12149            Slot {
12150                k: Sk::Str,
12151                req: true,
12152                der: false,
12153                swire: None,
12154            },
12155            Slot {
12156                k: Sk::Str,
12157                req: false,
12158                der: false,
12159                swire: None,
12160            },
12161            Slot {
12162                k: Sk::Ref,
12163                req: true,
12164                der: false,
12165                swire: None,
12166            },
12167            Slot {
12168                k: Sk::Ref,
12169                req: true,
12170                der: false,
12171                swire: None,
12172            },
12173        ],
12174        "PRODUCT_DEFINITION_RELATIONSHIP_RELATIONSHIP" => &[
12175            Slot {
12176                k: Sk::Str,
12177                req: true,
12178                der: false,
12179                swire: None,
12180            },
12181            Slot {
12182                k: Sk::Str,
12183                req: true,
12184                der: false,
12185                swire: None,
12186            },
12187            Slot {
12188                k: Sk::Str,
12189                req: false,
12190                der: false,
12191                swire: None,
12192            },
12193            Slot {
12194                k: Sk::Ref,
12195                req: true,
12196                der: false,
12197                swire: None,
12198            },
12199            Slot {
12200                k: Sk::Ref,
12201                req: true,
12202                der: false,
12203                swire: None,
12204            },
12205        ],
12206        "PRODUCT_DEFINITION_SHAPE" => &[],
12207        "PRODUCT_DEFINITION_USAGE" => &[],
12208        "PRODUCT_DEFINITION_WITH_ASSOCIATED_DOCUMENTS" => &[Slot {
12209            k: Sk::Vec,
12210            req: true,
12211            der: false,
12212            swire: None,
12213        }],
12214        "PRODUCT_RELATED_PRODUCT_CATEGORY" => &[Slot {
12215            k: Sk::Vec,
12216            req: true,
12217            der: false,
12218            swire: None,
12219        }],
12220        "PROJECTED_ZONE_DEFINITION" => &[
12221            Slot {
12222                k: Sk::Ref,
12223                req: true,
12224                der: false,
12225                swire: None,
12226            },
12227            Slot {
12228                k: Sk::Ref,
12229                req: true,
12230                der: false,
12231                swire: None,
12232            },
12233        ],
12234        "PROPERTY_DEFINITION" => &[
12235            Slot {
12236                k: Sk::Str,
12237                req: true,
12238                der: false,
12239                swire: None,
12240            },
12241            Slot {
12242                k: Sk::Str,
12243                req: false,
12244                der: false,
12245                swire: None,
12246            },
12247            Slot {
12248                k: Sk::Ref,
12249                req: true,
12250                der: false,
12251                swire: None,
12252            },
12253        ],
12254        "PROPERTY_DEFINITION_REPRESENTATION" => &[
12255            Slot {
12256                k: Sk::Ref,
12257                req: true,
12258                der: false,
12259                swire: None,
12260            },
12261            Slot {
12262                k: Sk::Ref,
12263                req: true,
12264                der: false,
12265                swire: None,
12266            },
12267        ],
12268        "QUALIFIED_REPRESENTATION_ITEM" => &[Slot {
12269            k: Sk::Vec,
12270            req: true,
12271            der: false,
12272            swire: None,
12273        }],
12274        "QUASI_UNIFORM_CURVE" => &[],
12275        "QUASI_UNIFORM_SURFACE" => &[],
12276        "RATIO_MEASURE_WITH_UNIT" => &[],
12277        "RATIO_UNIT" => &[],
12278        "RATIONAL_B_SPLINE_CURVE" => &[Slot {
12279            k: Sk::Vec,
12280            req: true,
12281            der: false,
12282            swire: None,
12283        }],
12284        "RATIONAL_B_SPLINE_SURFACE" => &[Slot {
12285            k: Sk::Vec,
12286            req: true,
12287            der: false,
12288            swire: None,
12289        }],
12290        "REAL_LITERAL" => &[],
12291        "REAL_REPRESENTATION_ITEM" => &[],
12292        "REPOSITIONED_TESSELLATED_ITEM" => &[Slot {
12293            k: Sk::Ref,
12294            req: true,
12295            der: false,
12296            swire: None,
12297        }],
12298        "REPRESENTATION" => &[
12299            Slot {
12300                k: Sk::Str,
12301                req: true,
12302                der: false,
12303                swire: None,
12304            },
12305            Slot {
12306                k: Sk::Vec,
12307                req: true,
12308                der: false,
12309                swire: None,
12310            },
12311            Slot {
12312                k: Sk::Ref,
12313                req: true,
12314                der: false,
12315                swire: None,
12316            },
12317        ],
12318        "REPRESENTATION_CONTEXT" => &[
12319            Slot {
12320                k: Sk::Str,
12321                req: true,
12322                der: false,
12323                swire: None,
12324            },
12325            Slot {
12326                k: Sk::Str,
12327                req: true,
12328                der: false,
12329                swire: None,
12330            },
12331        ],
12332        "REPRESENTATION_ITEM" => &[Slot {
12333            k: Sk::Str,
12334            req: true,
12335            der: false,
12336            swire: None,
12337        }],
12338        "REPRESENTATION_MAP" => &[
12339            Slot {
12340                k: Sk::Ref,
12341                req: true,
12342                der: false,
12343                swire: None,
12344            },
12345            Slot {
12346                k: Sk::Ref,
12347                req: true,
12348                der: false,
12349                swire: None,
12350            },
12351        ],
12352        "REPRESENTATION_REFERENCE" => &[
12353            Slot {
12354                k: Sk::Str,
12355                req: true,
12356                der: false,
12357                swire: None,
12358            },
12359            Slot {
12360                k: Sk::Ref,
12361                req: true,
12362                der: false,
12363                swire: None,
12364            },
12365        ],
12366        "REPRESENTATION_RELATIONSHIP" => &[
12367            Slot {
12368                k: Sk::Str,
12369                req: true,
12370                der: false,
12371                swire: None,
12372            },
12373            Slot {
12374                k: Sk::Str,
12375                req: false,
12376                der: false,
12377                swire: None,
12378            },
12379            Slot {
12380                k: Sk::Ref,
12381                req: true,
12382                der: false,
12383                swire: None,
12384            },
12385            Slot {
12386                k: Sk::Ref,
12387                req: true,
12388                der: false,
12389                swire: None,
12390            },
12391        ],
12392        "REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION" => &[Slot {
12393            k: Sk::Ref,
12394            req: true,
12395            der: false,
12396            swire: None,
12397        }],
12398        "ROUNDNESS_TOLERANCE" => &[],
12399        "SEAM_CURVE" => &[],
12400        "SECURITY_CLASSIFICATION_ASSIGNMENT" => &[Slot {
12401            k: Sk::Ref,
12402            req: true,
12403            der: false,
12404            swire: None,
12405        }],
12406        "SHAPE_ASPECT" => &[
12407            Slot {
12408                k: Sk::Str,
12409                req: true,
12410                der: false,
12411                swire: None,
12412            },
12413            Slot {
12414                k: Sk::Str,
12415                req: false,
12416                der: false,
12417                swire: None,
12418            },
12419            Slot {
12420                k: Sk::Ref,
12421                req: true,
12422                der: false,
12423                swire: None,
12424            },
12425            Slot {
12426                k: Sk::Log,
12427                req: false,
12428                der: false,
12429                swire: None,
12430            },
12431        ],
12432        "SHAPE_ASPECT_RELATIONSHIP" => &[
12433            Slot {
12434                k: Sk::Str,
12435                req: true,
12436                der: false,
12437                swire: None,
12438            },
12439            Slot {
12440                k: Sk::Str,
12441                req: false,
12442                der: false,
12443                swire: None,
12444            },
12445            Slot {
12446                k: Sk::Ref,
12447                req: true,
12448                der: false,
12449                swire: None,
12450            },
12451            Slot {
12452                k: Sk::Ref,
12453                req: true,
12454                der: false,
12455                swire: None,
12456            },
12457        ],
12458        "SHAPE_DEFINITION_REPRESENTATION" => &[],
12459        "SHAPE_DIMENSION_REPRESENTATION" => &[],
12460        "SHAPE_REPRESENTATION" => &[],
12461        "SHAPE_REPRESENTATION_RELATIONSHIP" => &[],
12462        "SHAPE_REPRESENTATION_WITH_PARAMETERS" => &[],
12463        "SHELL_BASED_SURFACE_MODEL" => &[Slot {
12464            k: Sk::Vec,
12465            req: true,
12466            der: false,
12467            swire: None,
12468        }],
12469        "SI_UNIT" => &[
12470            Slot {
12471                k: Sk::Enum,
12472                req: false,
12473                der: false,
12474                swire: None,
12475            },
12476            Slot {
12477                k: Sk::Enum,
12478                req: true,
12479                der: false,
12480                swire: None,
12481            },
12482        ],
12483        "SIMPLE_GENERIC_EXPRESSION" => &[],
12484        "SIMPLE_NUMERIC_EXPRESSION" => &[],
12485        "SOLID_ANGLE_UNIT" => &[],
12486        "SOLID_MODEL" => &[],
12487        "START_REQUEST" => &[Slot {
12488            k: Sk::Vec,
12489            req: true,
12490            der: false,
12491            swire: None,
12492        }],
12493        "STATE_OBSERVED" => &[
12494            Slot {
12495                k: Sk::Str,
12496                req: true,
12497                der: false,
12498                swire: None,
12499            },
12500            Slot {
12501                k: Sk::Str,
12502                req: false,
12503                der: false,
12504                swire: None,
12505            },
12506        ],
12507        "STATE_TYPE" => &[
12508            Slot {
12509                k: Sk::Str,
12510                req: true,
12511                der: false,
12512                swire: None,
12513            },
12514            Slot {
12515                k: Sk::Str,
12516                req: false,
12517                der: false,
12518                swire: None,
12519            },
12520        ],
12521        "STRAIGHTNESS_TOLERANCE" => &[],
12522        "STYLED_ITEM" => &[
12523            Slot {
12524                k: Sk::Vec,
12525                req: true,
12526                der: false,
12527                swire: None,
12528            },
12529            Slot {
12530                k: Sk::Ref,
12531                req: true,
12532                der: false,
12533                swire: None,
12534            },
12535        ],
12536        "SURFACE" => &[],
12537        "SURFACE_CURVE" => &[
12538            Slot {
12539                k: Sk::Ref,
12540                req: true,
12541                der: false,
12542                swire: None,
12543            },
12544            Slot {
12545                k: Sk::Vec,
12546                req: true,
12547                der: false,
12548                swire: None,
12549            },
12550            Slot {
12551                k: Sk::Enum,
12552                req: true,
12553                der: false,
12554                swire: None,
12555            },
12556        ],
12557        "SURFACE_PROFILE_TOLERANCE" => &[],
12558        "SURFACE_SIDE_STYLE" => &[
12559            Slot {
12560                k: Sk::Str,
12561                req: true,
12562                der: false,
12563                swire: None,
12564            },
12565            Slot {
12566                k: Sk::Vec,
12567                req: true,
12568                der: false,
12569                swire: None,
12570            },
12571        ],
12572        "SURFACE_STYLE_BOUNDARY" => &[Slot {
12573            k: Sk::Ref,
12574            req: true,
12575            der: false,
12576            swire: None,
12577        }],
12578        "SURFACE_STYLE_CONTROL_GRID" => &[Slot {
12579            k: Sk::Ref,
12580            req: true,
12581            der: false,
12582            swire: None,
12583        }],
12584        "SURFACE_STYLE_FILL_AREA" => &[Slot {
12585            k: Sk::Ref,
12586            req: true,
12587            der: false,
12588            swire: None,
12589        }],
12590        "SURFACE_STYLE_PARAMETER_LINE" => &[
12591            Slot {
12592                k: Sk::Ref,
12593                req: true,
12594                der: false,
12595                swire: None,
12596            },
12597            Slot {
12598                k: Sk::Vec,
12599                req: true,
12600                der: false,
12601                swire: None,
12602            },
12603        ],
12604        "SURFACE_STYLE_REFLECTANCE_AMBIENT" => &[Slot {
12605            k: Sk::Real,
12606            req: true,
12607            der: false,
12608            swire: None,
12609        }],
12610        "SURFACE_STYLE_RENDERING" => &[
12611            Slot {
12612                k: Sk::Enum,
12613                req: true,
12614                der: false,
12615                swire: None,
12616            },
12617            Slot {
12618                k: Sk::Ref,
12619                req: true,
12620                der: false,
12621                swire: None,
12622            },
12623        ],
12624        "SURFACE_STYLE_RENDERING_WITH_PROPERTIES" => &[Slot {
12625            k: Sk::Vec,
12626            req: true,
12627            der: false,
12628            swire: None,
12629        }],
12630        "SURFACE_STYLE_SEGMENTATION_CURVE" => &[Slot {
12631            k: Sk::Ref,
12632            req: true,
12633            der: false,
12634            swire: None,
12635        }],
12636        "SURFACE_STYLE_SILHOUETTE" => &[Slot {
12637            k: Sk::Ref,
12638            req: true,
12639            der: false,
12640            swire: None,
12641        }],
12642        "SURFACE_STYLE_USAGE" => &[
12643            Slot {
12644                k: Sk::Enum,
12645                req: true,
12646                der: false,
12647                swire: None,
12648            },
12649            Slot {
12650                k: Sk::Ref,
12651                req: true,
12652                der: false,
12653                swire: None,
12654            },
12655        ],
12656        "SYMBOL_REPRESENTATION" => &[],
12657        "SYMBOL_STYLE" => &[
12658            Slot {
12659                k: Sk::Str,
12660                req: true,
12661                der: false,
12662                swire: None,
12663            },
12664            Slot {
12665                k: Sk::Ref,
12666                req: true,
12667                der: false,
12668                swire: None,
12669            },
12670        ],
12671        "TERMINATOR_SYMBOL" => &[Slot {
12672            k: Sk::Ref,
12673            req: true,
12674            der: false,
12675            swire: None,
12676        }],
12677        "TESSELLATED_GEOMETRIC_SET" => &[Slot {
12678            k: Sk::Vec,
12679            req: true,
12680            der: false,
12681            swire: None,
12682        }],
12683        "TESSELLATED_ITEM" => &[],
12684        "TESSELLATED_SHAPE_REPRESENTATION" => &[],
12685        "TESSELLATED_STRUCTURED_ITEM" => &[],
12686        "TEXT_LITERAL" => &[
12687            Slot {
12688                k: Sk::Str,
12689                req: true,
12690                der: false,
12691                swire: None,
12692            },
12693            Slot {
12694                k: Sk::Ref,
12695                req: true,
12696                der: false,
12697                swire: None,
12698            },
12699            Slot {
12700                k: Sk::Str,
12701                req: true,
12702                der: false,
12703                swire: None,
12704            },
12705            Slot {
12706                k: Sk::Enum,
12707                req: true,
12708                der: false,
12709                swire: None,
12710            },
12711            Slot {
12712                k: Sk::Ref,
12713                req: true,
12714                der: false,
12715                swire: None,
12716            },
12717        ],
12718        "TEXT_STYLE" => &[
12719            Slot {
12720                k: Sk::Str,
12721                req: true,
12722                der: false,
12723                swire: None,
12724            },
12725            Slot {
12726                k: Sk::Ref,
12727                req: true,
12728                der: false,
12729                swire: None,
12730            },
12731        ],
12732        "TEXT_STYLE_WITH_BOX_CHARACTERISTICS" => &[Slot {
12733            k: Sk::Vec,
12734            req: true,
12735            der: false,
12736            swire: None,
12737        }],
12738        "TEXTURE_STYLE_SPECIFICATION" => &[],
12739        "TEXTURE_STYLE_TESSELLATION_SPECIFICATION" => &[],
12740        "TIME_UNIT" => &[],
12741        "TOLERANCE_ZONE" => &[
12742            Slot {
12743                k: Sk::Vec,
12744                req: true,
12745                der: false,
12746                swire: None,
12747            },
12748            Slot {
12749                k: Sk::Ref,
12750                req: true,
12751                der: false,
12752                swire: None,
12753            },
12754        ],
12755        "TOLERANCE_ZONE_DEFINITION" => &[
12756            Slot {
12757                k: Sk::Ref,
12758                req: true,
12759                der: false,
12760                swire: None,
12761            },
12762            Slot {
12763                k: Sk::Vec,
12764                req: true,
12765                der: false,
12766                swire: None,
12767            },
12768        ],
12769        "TOLERANCE_ZONE_WITH_DATUM" => &[Slot {
12770            k: Sk::Ref,
12771            req: true,
12772            der: false,
12773            swire: None,
12774        }],
12775        "TOPOLOGICAL_REPRESENTATION_ITEM" => &[],
12776        "TOROIDAL_SURFACE" => &[
12777            Slot {
12778                k: Sk::Real,
12779                req: true,
12780                der: false,
12781                swire: None,
12782            },
12783            Slot {
12784                k: Sk::Real,
12785                req: true,
12786                der: false,
12787                swire: None,
12788            },
12789        ],
12790        "TWO_DIRECTION_REPEAT_FACTOR" => &[Slot {
12791            k: Sk::Ref,
12792            req: true,
12793            der: false,
12794            swire: None,
12795        }],
12796        "UNEQUALLY_DISPOSED_GEOMETRIC_TOLERANCE" => &[Slot {
12797            k: Sk::Ref,
12798            req: true,
12799            der: false,
12800            swire: None,
12801        }],
12802        "UNIFORM_CURVE" => &[],
12803        "UNIFORM_SURFACE" => &[],
12804        "VALUE_REPRESENTATION_ITEM" => &[Slot {
12805            k: Sk::Meas,
12806            req: true,
12807            der: false,
12808            swire: None,
12809        }],
12810        "VECTOR" => &[
12811            Slot {
12812                k: Sk::Ref,
12813                req: true,
12814                der: false,
12815                swire: None,
12816            },
12817            Slot {
12818                k: Sk::Real,
12819                req: true,
12820                der: false,
12821                swire: None,
12822            },
12823        ],
12824        "VERTEX" => &[],
12825        "VERTEX_POINT" => &[Slot {
12826            k: Sk::Ref,
12827            req: true,
12828            der: false,
12829            swire: None,
12830        }],
12831        "VIEW_VOLUME" => &[
12832            Slot {
12833                k: Sk::Enum,
12834                req: true,
12835                der: false,
12836                swire: None,
12837            },
12838            Slot {
12839                k: Sk::Ref,
12840                req: true,
12841                der: false,
12842                swire: None,
12843            },
12844            Slot {
12845                k: Sk::Real,
12846                req: true,
12847                der: false,
12848                swire: None,
12849            },
12850            Slot {
12851                k: Sk::Real,
12852                req: true,
12853                der: false,
12854                swire: None,
12855            },
12856            Slot {
12857                k: Sk::Bool,
12858                req: true,
12859                der: false,
12860                swire: None,
12861            },
12862            Slot {
12863                k: Sk::Real,
12864                req: true,
12865                der: false,
12866                swire: None,
12867            },
12868            Slot {
12869                k: Sk::Bool,
12870                req: true,
12871                der: false,
12872                swire: None,
12873            },
12874            Slot {
12875                k: Sk::Bool,
12876                req: true,
12877                der: false,
12878                swire: None,
12879            },
12880            Slot {
12881                k: Sk::Ref,
12882                req: true,
12883                der: false,
12884                swire: None,
12885            },
12886        ],
12887        _ => &[],
12888    }
12889}