edoxen 0.7.2 → 0.8.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.rubocop.yml +26 -1
- data/.rubocop_todo.yml +1 -1
- data/CHANGELOG.md +133 -0
- data/README.adoc +414 -182
- data/edoxen.gemspec +10 -10
- data/lib/edoxen/action.rb +5 -4
- data/lib/edoxen/agenda.rb +4 -7
- data/lib/edoxen/agenda_item.rb +18 -5
- data/lib/edoxen/approval.rb +2 -2
- data/lib/edoxen/attendance.rb +16 -10
- data/lib/edoxen/body.rb +26 -0
- data/lib/edoxen/body_register.rb +17 -0
- data/lib/edoxen/body_vocabulary_entry.rb +24 -0
- data/lib/edoxen/body_vocabulary_host.rb +40 -0
- data/lib/edoxen/cli.rb +175 -115
- data/lib/edoxen/consideration.rb +6 -4
- data/lib/edoxen/contact.rb +37 -0
- data/lib/edoxen/contact_identifier.rb +13 -0
- data/lib/edoxen/contact_method.rb +16 -0
- data/lib/edoxen/contact_register.rb +26 -0
- data/lib/edoxen/date_time_range.rb +16 -0
- data/lib/edoxen/deadline.rb +1 -1
- data/lib/edoxen/decision.rb +57 -0
- data/lib/edoxen/decision_collection.rb +10 -0
- data/lib/edoxen/decision_date.rb +9 -0
- data/lib/edoxen/decision_metadata.rb +27 -0
- data/lib/edoxen/decision_relation.rb +11 -0
- data/lib/edoxen/declaration.rb +25 -0
- data/lib/edoxen/entity_ref.rb +74 -0
- data/lib/edoxen/entity_resolver.rb +68 -0
- data/lib/edoxen/enums.rb +123 -9
- data/lib/edoxen/error.rb +1 -1
- data/lib/edoxen/extension_attribute.rb +78 -0
- data/lib/edoxen/host_ref.rb +1 -1
- data/lib/edoxen/link_checker.rb +143 -34
- data/lib/edoxen/localized_name.rb +16 -0
- data/lib/edoxen/localized_string.rb +22 -0
- data/lib/edoxen/meeting.rb +36 -42
- data/lib/edoxen/meeting_collection.rb +1 -2
- data/lib/edoxen/meeting_collection_metadata.rb +4 -2
- data/lib/edoxen/meeting_component.rb +37 -0
- data/lib/edoxen/meeting_extension.rb +25 -0
- data/lib/edoxen/meeting_identifier.rb +1 -1
- data/lib/edoxen/meeting_series.rb +26 -0
- data/lib/edoxen/minutes.rb +3 -4
- data/lib/edoxen/minutes_section.rb +12 -13
- data/lib/edoxen/motion.rb +51 -0
- data/lib/edoxen/name.rb +29 -0
- data/lib/edoxen/officer.rb +19 -0
- data/lib/edoxen/officers_host.rb +19 -0
- data/lib/edoxen/person.rb +5 -9
- data/lib/edoxen/physical_venue.rb +15 -0
- data/lib/edoxen/recurrence.rb +27 -0
- data/lib/edoxen/recurrence_by_day.rb +10 -0
- data/lib/edoxen/reference.rb +1 -1
- data/lib/edoxen/reference_data.rb +34 -44
- data/lib/edoxen/schema_validator.rb +3 -4
- data/lib/edoxen/source_url.rb +4 -4
- data/lib/edoxen/statement.rb +21 -0
- data/lib/edoxen/structured_identifier.rb +2 -2
- data/lib/edoxen/topic.rb +39 -0
- data/lib/edoxen/topic_asset.rb +14 -0
- data/lib/edoxen/topic_document.rb +16 -0
- data/lib/edoxen/urn_for.rb +68 -0
- data/lib/edoxen/venue.rb +81 -0
- data/lib/edoxen/venue_register.rb +18 -0
- data/lib/edoxen/venue_validator.rb +74 -0
- data/lib/edoxen/version.rb +1 -1
- data/lib/edoxen/virtual_venue.rb +15 -0
- data/lib/edoxen/vote_record.rb +17 -13
- data/lib/edoxen/voting.rb +45 -0
- data/lib/edoxen/voting_counts.rb +23 -0
- data/lib/edoxen.rb +51 -15
- data/schema/edoxen.yaml +1427 -246
- data/schema/meeting.yaml +1311 -308
- data/sig/edoxen.rbs +581 -1
- metadata +66 -22
- data/lib/edoxen/_metadata.rb.deprecated +0 -57
- data/lib/edoxen/localization.rb +0 -18
- data/lib/edoxen/location.rb +0 -15
- data/lib/edoxen/meeting_localization.rb +0 -15
- data/lib/edoxen/resolution.rb +0 -43
- data/lib/edoxen/resolution_collection.rb +0 -10
- data/lib/edoxen/resolution_date.rb +0 -11
- data/lib/edoxen/resolution_metadata.rb +0 -30
- data/lib/edoxen/resolution_relation.rb +0 -11
- data/lib/edoxen/resolution_set.rb +0 -17
- data/lib/edoxen/schedule_item.rb +0 -27
- data/lib/edoxen/schedule_item_localization.rb +0 -21
data/schema/meeting.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
$schema:
|
|
3
|
-
$id:
|
|
4
|
-
title:
|
|
2
|
+
"$schema": http://json-schema.org/draft-07/schema#
|
|
3
|
+
"$id": https://github.com/edoxen/edoxen-model/schema/meeting.yaml
|
|
4
|
+
title: Edoxen Meeting Schema
|
|
5
5
|
description: |
|
|
6
6
|
Schema for validating Edoxen Meeting/Agenda YAML files.
|
|
7
7
|
|
|
@@ -16,47 +16,61 @@ description: |
|
|
|
16
16
|
`spec/edoxen/schema_meeting_enum_sync_spec.rb`.
|
|
17
17
|
type: object
|
|
18
18
|
oneOf:
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
$defs:
|
|
23
|
-
|
|
24
|
-
# ====================================================================
|
|
25
|
-
# Reused from schema/edoxen.yaml (re-declared here so this file is
|
|
26
|
-
# self-contained — schema/meeting.yaml does not depend on
|
|
27
|
-
# schema/edoxen.yaml).
|
|
28
|
-
# ====================================================================
|
|
29
|
-
|
|
19
|
+
- "$ref": "#/$defs/MeetingCollection"
|
|
20
|
+
- "$ref": "#/$defs/Meeting"
|
|
21
|
+
- "$ref": "#/$defs/MeetingSeries"
|
|
22
|
+
"$defs":
|
|
30
23
|
StructuredIdentifier:
|
|
31
24
|
type: object
|
|
32
|
-
description:
|
|
25
|
+
description: An identifier (prefix + number). A Decision carries 1..* of these.
|
|
33
26
|
additionalProperties: false
|
|
34
|
-
required:
|
|
27
|
+
required:
|
|
28
|
+
- prefix
|
|
29
|
+
- number
|
|
35
30
|
properties:
|
|
36
|
-
prefix:
|
|
37
|
-
|
|
38
|
-
|
|
31
|
+
prefix:
|
|
32
|
+
type: string
|
|
33
|
+
number:
|
|
34
|
+
type: string
|
|
35
|
+
EntityRef:
|
|
36
|
+
type: object
|
|
37
|
+
description: |
|
|
38
|
+
Typed cross-reference between entities (1.0, TODO.refactor/1.0-design).
|
|
39
|
+
Exactly one of `urn`, `identifier`, or `local_ref` should be set;
|
|
40
|
+
the gem's `EntityRef#valid?` enforces this in Ruby.
|
|
41
|
+
additionalProperties: false
|
|
42
|
+
properties:
|
|
43
|
+
urn:
|
|
44
|
+
type: string
|
|
45
|
+
identifier:
|
|
46
|
+
"$ref": "#/$defs/StructuredIdentifier"
|
|
47
|
+
local_ref:
|
|
48
|
+
type: string
|
|
49
|
+
kind:
|
|
50
|
+
type: string
|
|
51
|
+
role:
|
|
52
|
+
type: string
|
|
53
|
+
note:
|
|
54
|
+
type: string
|
|
39
55
|
SourceUrl:
|
|
40
56
|
type: object
|
|
41
|
-
description:
|
|
57
|
+
description: Per-spelling canonical source URL (e.g. one PDF per language).
|
|
42
58
|
additionalProperties: false
|
|
43
|
-
required:
|
|
59
|
+
required:
|
|
60
|
+
- ref
|
|
44
61
|
properties:
|
|
45
|
-
ref:
|
|
46
|
-
|
|
47
|
-
|
|
62
|
+
ref:
|
|
63
|
+
type: string
|
|
64
|
+
format:
|
|
48
65
|
type: string
|
|
49
|
-
|
|
66
|
+
spelling:
|
|
67
|
+
type: string
|
|
68
|
+
description: ISO 24229 spelling/conversion system code
|
|
50
69
|
kind:
|
|
51
|
-
$ref: "#/$defs/SourceUrlKind"
|
|
52
|
-
|
|
53
|
-
# ====================================================================
|
|
54
|
-
# Meeting-side primitive types.
|
|
55
|
-
# ====================================================================
|
|
56
|
-
|
|
70
|
+
"$ref": "#/$defs/SourceUrlKind"
|
|
57
71
|
DateRange:
|
|
58
72
|
type: object
|
|
59
|
-
description:
|
|
73
|
+
description: Start + end date pair for multi-day meetings.
|
|
60
74
|
additionalProperties: false
|
|
61
75
|
properties:
|
|
62
76
|
start:
|
|
@@ -65,199 +79,424 @@ $defs:
|
|
|
65
79
|
end:
|
|
66
80
|
type: string
|
|
67
81
|
format: date
|
|
68
|
-
|
|
69
|
-
|
|
82
|
+
ContactMethodKind:
|
|
83
|
+
type: string
|
|
84
|
+
description: Polymorphic communication channel kind.
|
|
85
|
+
enum:
|
|
86
|
+
- phone
|
|
87
|
+
- mobile
|
|
88
|
+
- fax
|
|
89
|
+
- email
|
|
90
|
+
- url
|
|
91
|
+
- mail
|
|
92
|
+
- pager
|
|
93
|
+
- message
|
|
94
|
+
- other
|
|
95
|
+
LocalizedString:
|
|
70
96
|
type: object
|
|
71
|
-
description:
|
|
97
|
+
description: |
|
|
98
|
+
One language-specific value of a translatable String field.
|
|
99
|
+
`spelling` is an ISO 24229 spelling/conversion system code.
|
|
100
|
+
Always verbose — single-language data uses the same
|
|
101
|
+
`[{ spelling, value }]` shape as multi-language data.
|
|
72
102
|
additionalProperties: false
|
|
103
|
+
required:
|
|
104
|
+
- spelling
|
|
105
|
+
- value
|
|
73
106
|
properties:
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
107
|
+
spelling:
|
|
108
|
+
type: string
|
|
109
|
+
value:
|
|
110
|
+
type: string
|
|
111
|
+
extensions:
|
|
112
|
+
type: array
|
|
113
|
+
items:
|
|
114
|
+
"$ref": "#/$defs/MeetingExtension"
|
|
115
|
+
LocalizedName:
|
|
83
116
|
type: object
|
|
84
|
-
description:
|
|
117
|
+
description: |
|
|
118
|
+
One language-specific value of a translatable Name field.
|
|
119
|
+
Mirrors LocalizedString but carries a structured Name.
|
|
85
120
|
additionalProperties: false
|
|
121
|
+
required:
|
|
122
|
+
- spelling
|
|
123
|
+
- value
|
|
86
124
|
properties:
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
125
|
+
spelling:
|
|
126
|
+
type: string
|
|
127
|
+
value:
|
|
128
|
+
"$ref": "#/$defs/Name"
|
|
129
|
+
extensions:
|
|
130
|
+
type: array
|
|
131
|
+
items:
|
|
132
|
+
"$ref": "#/$defs/MeetingExtension"
|
|
133
|
+
ContactMethod:
|
|
95
134
|
type: object
|
|
96
|
-
description:
|
|
135
|
+
description: |
|
|
136
|
+
One polymorphic communication channel — phone, email, fax, url,
|
|
137
|
+
mail, etc. `kind` discriminates the channel; `value` carries the
|
|
138
|
+
address/number; `label` is a free-form display hint ("Office",
|
|
139
|
+
"Front desk"). OCP: new channel kinds are added via the
|
|
140
|
+
ContactMethodKind enum (or `other` + extensions).
|
|
97
141
|
additionalProperties: false
|
|
98
|
-
required: [ref]
|
|
99
142
|
properties:
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
143
|
+
kind:
|
|
144
|
+
"$ref": "#/$defs/ContactMethodKind"
|
|
145
|
+
value:
|
|
146
|
+
type: string
|
|
147
|
+
label:
|
|
148
|
+
type: string
|
|
149
|
+
primary:
|
|
150
|
+
type: boolean
|
|
151
|
+
extensions:
|
|
152
|
+
type: array
|
|
153
|
+
items:
|
|
154
|
+
"$ref": "#/$defs/MeetingExtension"
|
|
155
|
+
ContactIdentifierKind:
|
|
156
|
+
type: string
|
|
157
|
+
description: Polymorphic external identifier scheme for a Contact.
|
|
158
|
+
enum:
|
|
159
|
+
- orcid
|
|
160
|
+
- isni
|
|
161
|
+
- wikidata
|
|
162
|
+
- ror
|
|
163
|
+
- ringgold
|
|
164
|
+
- github
|
|
165
|
+
- other
|
|
166
|
+
ContactIdentifier:
|
|
167
|
+
type: object
|
|
168
|
+
description: |
|
|
169
|
+
One polymorphic external identifier — ORCID, ISNI, Wikidata QID,
|
|
170
|
+
ROR, Ringgold, GitHub handle, etc. Replaces the hard-coded `orcid`
|
|
171
|
+
field. OCP: new identifier schemes are added via the
|
|
172
|
+
ContactIdentifierKind enum (or `other` + extensions).
|
|
173
|
+
additionalProperties: false
|
|
174
|
+
properties:
|
|
175
|
+
kind:
|
|
176
|
+
"$ref": "#/$defs/ContactIdentifierKind"
|
|
177
|
+
value:
|
|
178
|
+
type: string
|
|
179
|
+
extensions:
|
|
180
|
+
type: array
|
|
181
|
+
items:
|
|
182
|
+
"$ref": "#/$defs/MeetingExtension"
|
|
183
|
+
Name:
|
|
108
184
|
type: object
|
|
109
|
-
description:
|
|
185
|
+
description: |
|
|
186
|
+
Structured personal/organisational name (VCARD RFC 6350
|
|
187
|
+
conventions). `formatted` is the pre-built display string (FN);
|
|
188
|
+
the structured components (N) are stored separately for sorting,
|
|
189
|
+
indexing, or locale-aware rendering.
|
|
110
190
|
additionalProperties: false
|
|
111
|
-
required: [language_code]
|
|
112
191
|
properties:
|
|
113
|
-
|
|
192
|
+
formatted:
|
|
114
193
|
type: string
|
|
115
|
-
|
|
116
|
-
script:
|
|
194
|
+
family:
|
|
117
195
|
type: string
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
196
|
+
given:
|
|
197
|
+
type: string
|
|
198
|
+
additional:
|
|
199
|
+
type: string
|
|
200
|
+
prefix:
|
|
201
|
+
type: string
|
|
202
|
+
suffix:
|
|
203
|
+
type: string
|
|
204
|
+
extensions:
|
|
205
|
+
type: array
|
|
206
|
+
items:
|
|
207
|
+
"$ref": "#/$defs/MeetingExtension"
|
|
208
|
+
Contact:
|
|
123
209
|
type: object
|
|
124
|
-
description:
|
|
210
|
+
description: |
|
|
211
|
+
VCARD-like abstract contact. 1.0: per-field Localized
|
|
212
|
+
(name, title, affiliation, address). Added `urn` (registry
|
|
213
|
+
identity) and `ref` (reference-by-URN).
|
|
125
214
|
additionalProperties: false
|
|
126
215
|
properties:
|
|
127
|
-
|
|
216
|
+
ref:
|
|
128
217
|
type: string
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
218
|
+
local_ref:
|
|
219
|
+
type: string
|
|
220
|
+
urn:
|
|
221
|
+
type: string
|
|
222
|
+
pattern: "^urn:edoxen:contact:[^:]+:[^:]+$"
|
|
223
|
+
name:
|
|
135
224
|
type: array
|
|
136
225
|
items:
|
|
137
|
-
$ref: "#/$defs/
|
|
138
|
-
|
|
226
|
+
"$ref": "#/$defs/LocalizedName"
|
|
227
|
+
kind:
|
|
228
|
+
type: string
|
|
229
|
+
role:
|
|
230
|
+
type: string
|
|
231
|
+
title:
|
|
232
|
+
type: array
|
|
233
|
+
items:
|
|
234
|
+
"$ref": "#/$defs/LocalizedString"
|
|
235
|
+
affiliation:
|
|
236
|
+
type: array
|
|
237
|
+
items:
|
|
238
|
+
"$ref": "#/$defs/LocalizedString"
|
|
239
|
+
contact_methods:
|
|
240
|
+
type: array
|
|
241
|
+
items:
|
|
242
|
+
"$ref": "#/$defs/ContactMethod"
|
|
243
|
+
identifiers:
|
|
244
|
+
type: array
|
|
245
|
+
items:
|
|
246
|
+
"$ref": "#/$defs/ContactIdentifier"
|
|
247
|
+
address:
|
|
248
|
+
type: array
|
|
249
|
+
items:
|
|
250
|
+
"$ref": "#/$defs/LocalizedString"
|
|
251
|
+
extensions:
|
|
252
|
+
type: array
|
|
253
|
+
items:
|
|
254
|
+
"$ref": "#/$defs/MeetingExtension"
|
|
255
|
+
Person:
|
|
256
|
+
type: object
|
|
257
|
+
description: |
|
|
258
|
+
A Contact that is specifically an individual human. Schema
|
|
259
|
+
duplicates Contact's properties because JSON-Schema draft-07
|
|
260
|
+
doesn't support `extends`. Same shape; semantically a subclass.
|
|
261
|
+
additionalProperties: false
|
|
262
|
+
properties:
|
|
263
|
+
ref:
|
|
264
|
+
type: string
|
|
265
|
+
local_ref:
|
|
266
|
+
type: string
|
|
267
|
+
urn:
|
|
268
|
+
type: string
|
|
269
|
+
pattern: "^urn:edoxen:contact:[^:]+:[^:]+$"
|
|
270
|
+
name:
|
|
271
|
+
type: array
|
|
272
|
+
items:
|
|
273
|
+
"$ref": "#/$defs/LocalizedName"
|
|
274
|
+
kind:
|
|
275
|
+
type: string
|
|
276
|
+
role:
|
|
277
|
+
type: string
|
|
278
|
+
title:
|
|
279
|
+
type: array
|
|
280
|
+
items:
|
|
281
|
+
"$ref": "#/$defs/LocalizedString"
|
|
282
|
+
affiliation:
|
|
283
|
+
type: array
|
|
284
|
+
items:
|
|
285
|
+
"$ref": "#/$defs/LocalizedString"
|
|
286
|
+
contact_methods:
|
|
287
|
+
type: array
|
|
288
|
+
items:
|
|
289
|
+
"$ref": "#/$defs/ContactMethod"
|
|
290
|
+
identifiers:
|
|
291
|
+
type: array
|
|
292
|
+
items:
|
|
293
|
+
"$ref": "#/$defs/ContactIdentifier"
|
|
294
|
+
address:
|
|
295
|
+
type: array
|
|
296
|
+
items:
|
|
297
|
+
"$ref": "#/$defs/LocalizedString"
|
|
298
|
+
extensions:
|
|
299
|
+
type: array
|
|
300
|
+
items:
|
|
301
|
+
"$ref": "#/$defs/MeetingExtension"
|
|
302
|
+
HostRef:
|
|
303
|
+
type: object
|
|
304
|
+
description: Typed reference to a hosting organization.
|
|
305
|
+
additionalProperties: false
|
|
306
|
+
required:
|
|
307
|
+
- ref
|
|
308
|
+
properties:
|
|
309
|
+
ref:
|
|
310
|
+
type: string
|
|
311
|
+
type:
|
|
312
|
+
"$ref": "#/$defs/HostType"
|
|
313
|
+
role:
|
|
314
|
+
type: string
|
|
315
|
+
contact:
|
|
316
|
+
"$ref": "#/$defs/Contact"
|
|
139
317
|
Attendance:
|
|
140
318
|
type: object
|
|
141
|
-
description:
|
|
319
|
+
description: One attendance record per person at a Meeting.
|
|
142
320
|
additionalProperties: false
|
|
143
|
-
required:
|
|
321
|
+
required:
|
|
322
|
+
- person
|
|
323
|
+
- status
|
|
144
324
|
properties:
|
|
145
325
|
person:
|
|
146
|
-
$ref: "#/$defs/Person"
|
|
326
|
+
"$ref": "#/$defs/Person"
|
|
147
327
|
status:
|
|
148
|
-
$ref: "#/$defs/ParticipationStatus"
|
|
149
|
-
|
|
328
|
+
"$ref": "#/$defs/ParticipationStatus"
|
|
329
|
+
role:
|
|
330
|
+
"$ref": "#/$defs/AttendanceRole"
|
|
331
|
+
response:
|
|
332
|
+
"$ref": "#/$defs/AttendanceResponse"
|
|
333
|
+
affiliation:
|
|
334
|
+
type: string
|
|
150
335
|
proxy_for:
|
|
151
|
-
$ref: "#/$defs/Person"
|
|
152
|
-
notes:
|
|
153
|
-
|
|
336
|
+
"$ref": "#/$defs/Person"
|
|
337
|
+
notes:
|
|
338
|
+
type: string
|
|
339
|
+
extensions:
|
|
340
|
+
type: array
|
|
341
|
+
items:
|
|
342
|
+
"$ref": "#/$defs/MeetingExtension"
|
|
154
343
|
VoteRecord:
|
|
155
344
|
type: object
|
|
156
|
-
description:
|
|
345
|
+
description: One vote by one person on one decision/voting.
|
|
157
346
|
additionalProperties: false
|
|
158
|
-
required:
|
|
347
|
+
required:
|
|
348
|
+
- person
|
|
349
|
+
- vote
|
|
159
350
|
properties:
|
|
160
|
-
|
|
351
|
+
decision_ref:
|
|
352
|
+
type: string
|
|
353
|
+
voting_ref:
|
|
354
|
+
type: string
|
|
161
355
|
person:
|
|
162
|
-
$ref: "#/$defs/Person"
|
|
163
|
-
affiliation:
|
|
356
|
+
"$ref": "#/$defs/Person"
|
|
357
|
+
affiliation:
|
|
358
|
+
type: string
|
|
164
359
|
vote:
|
|
165
|
-
$ref: "#/$defs/VoteType"
|
|
166
|
-
|
|
167
|
-
|
|
360
|
+
"$ref": "#/$defs/VoteType"
|
|
361
|
+
role:
|
|
362
|
+
type: string
|
|
363
|
+
notes:
|
|
364
|
+
type: string
|
|
365
|
+
extensions:
|
|
366
|
+
type: array
|
|
367
|
+
items:
|
|
368
|
+
"$ref": "#/$defs/MeetingExtension"
|
|
168
369
|
MinutesSection:
|
|
169
370
|
type: object
|
|
170
|
-
description:
|
|
171
|
-
One section of a Meeting's minutes — typically tied to an agenda
|
|
172
|
-
item by its `number` field. Carries the narrative as Markdown
|
|
173
|
-
(the format the GLM-OCR pipeline emits) plus an optional page
|
|
174
|
-
range for provenance back to the source PDF.
|
|
371
|
+
description: 'One section of a Meeting''s minutes — typically tied to an agenda item by `number`. 1.0: per-field Localized.'
|
|
175
372
|
additionalProperties: false
|
|
176
373
|
properties:
|
|
177
|
-
number:
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
374
|
+
number:
|
|
375
|
+
type: string
|
|
376
|
+
title:
|
|
377
|
+
type: array
|
|
378
|
+
items:
|
|
379
|
+
"$ref": "#/$defs/LocalizedString"
|
|
380
|
+
narrative:
|
|
381
|
+
type: array
|
|
382
|
+
items:
|
|
383
|
+
"$ref": "#/$defs/LocalizedString"
|
|
384
|
+
page_start:
|
|
385
|
+
type: integer
|
|
386
|
+
page_end:
|
|
387
|
+
type: integer
|
|
182
388
|
references:
|
|
183
389
|
type: array
|
|
184
390
|
items:
|
|
185
|
-
$ref: "#/$defs/Reference"
|
|
186
|
-
|
|
391
|
+
"$ref": "#/$defs/Reference"
|
|
392
|
+
statements:
|
|
393
|
+
type: array
|
|
394
|
+
items:
|
|
395
|
+
"$ref": "#/$defs/Statement"
|
|
396
|
+
topic_ref:
|
|
397
|
+
type: string
|
|
398
|
+
description: |
|
|
399
|
+
URN back-reference to the Topic this section records.
|
|
400
|
+
Optional; formalises the convention that
|
|
401
|
+
`MinutesSection#number` matches `AgendaItem#label`.
|
|
187
402
|
Minutes:
|
|
188
403
|
type: object
|
|
189
404
|
description: |
|
|
190
|
-
The narrative record of a Meeting
|
|
191
|
-
|
|
192
|
-
order drafted before the meeting) and from ResolutionCollection
|
|
193
|
-
(the formal decisions adopted). The Minutes are the running
|
|
194
|
-
record. One Minutes document per language; sections are typically
|
|
195
|
-
keyed by agenda-item number so consumers can join
|
|
196
|
-
Minutes ↔ AgendaItem ↔ Resolution.
|
|
405
|
+
The narrative record of a Meeting. 1.0: per-document language_code
|
|
406
|
+
+ script replaced by a single `spelling` (ISO 24229).
|
|
197
407
|
additionalProperties: false
|
|
198
408
|
properties:
|
|
199
409
|
identifier:
|
|
200
410
|
type: array
|
|
201
411
|
items:
|
|
202
|
-
$ref: "#/$defs/StructuredIdentifier"
|
|
203
|
-
urn:
|
|
204
|
-
|
|
412
|
+
"$ref": "#/$defs/StructuredIdentifier"
|
|
413
|
+
urn:
|
|
414
|
+
type: string
|
|
415
|
+
spelling:
|
|
205
416
|
type: string
|
|
206
|
-
|
|
207
|
-
|
|
417
|
+
description: ISO 24229 spelling/conversion system code
|
|
418
|
+
source_doc:
|
|
419
|
+
type: string
|
|
420
|
+
source_pages:
|
|
208
421
|
type: string
|
|
209
|
-
pattern: "^[A-Z][a-z]{3}$"
|
|
210
|
-
source_doc: { type: string }
|
|
211
|
-
source_pages: { type: string }
|
|
212
422
|
sections:
|
|
213
423
|
type: array
|
|
214
424
|
items:
|
|
215
|
-
$ref: "#/$defs/MinutesSection"
|
|
216
|
-
|
|
425
|
+
"$ref": "#/$defs/MinutesSection"
|
|
217
426
|
Deadline:
|
|
218
427
|
type: object
|
|
219
|
-
description:
|
|
428
|
+
description: 'A time-bound requirement. 1.0: per-field Localized.'
|
|
220
429
|
additionalProperties: false
|
|
221
|
-
required:
|
|
430
|
+
required:
|
|
431
|
+
- date
|
|
222
432
|
properties:
|
|
223
433
|
date:
|
|
224
434
|
type: string
|
|
225
435
|
format: date
|
|
226
|
-
description:
|
|
227
|
-
|
|
436
|
+
description:
|
|
437
|
+
type: array
|
|
438
|
+
items:
|
|
439
|
+
"$ref": "#/$defs/LocalizedString"
|
|
228
440
|
Reference:
|
|
229
441
|
type: object
|
|
230
|
-
description:
|
|
442
|
+
description: Generic document reference.
|
|
231
443
|
additionalProperties: false
|
|
232
444
|
properties:
|
|
233
|
-
ref:
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
445
|
+
ref:
|
|
446
|
+
type: string
|
|
447
|
+
kind:
|
|
448
|
+
type: string
|
|
449
|
+
title:
|
|
450
|
+
type: array
|
|
451
|
+
items:
|
|
452
|
+
"$ref": "#/$defs/LocalizedString"
|
|
241
453
|
AgendaItem:
|
|
242
454
|
type: object
|
|
243
|
-
description:
|
|
455
|
+
description: |
|
|
456
|
+
One entry on an Agenda. 1.0: per-field Localized.
|
|
457
|
+
`urn` is the first-class URN of this item, derived from the
|
|
458
|
+
parent meeting URN and label (e.g.
|
|
459
|
+
`urn:oiml:ciml:meeting:ciml-60:agenda:6.2`). Optional in source
|
|
460
|
+
data; can be computed via `Edoxen::UrnFor.agenda_item`.
|
|
244
461
|
additionalProperties: false
|
|
245
462
|
properties:
|
|
246
|
-
|
|
463
|
+
urn:
|
|
464
|
+
type: string
|
|
465
|
+
description: |
|
|
466
|
+
First-class URN for this agenda item. Hierarchical under the
|
|
467
|
+
parent meeting URN: `urn:oiml:{body}:meeting:{slug}:agenda:{label}`.
|
|
468
|
+
label:
|
|
469
|
+
type: string
|
|
247
470
|
kind:
|
|
248
|
-
$ref: "#/$defs/AgendaItemKind"
|
|
249
|
-
title:
|
|
250
|
-
|
|
471
|
+
"$ref": "#/$defs/AgendaItemKind"
|
|
472
|
+
title:
|
|
473
|
+
type: array
|
|
474
|
+
items:
|
|
475
|
+
"$ref": "#/$defs/LocalizedString"
|
|
476
|
+
description:
|
|
477
|
+
type: array
|
|
478
|
+
items:
|
|
479
|
+
"$ref": "#/$defs/LocalizedString"
|
|
251
480
|
references:
|
|
252
481
|
type: array
|
|
253
482
|
items:
|
|
254
|
-
$ref: "#/$defs/Reference"
|
|
483
|
+
"$ref": "#/$defs/Reference"
|
|
255
484
|
outcome:
|
|
256
|
-
$ref: "#/$defs/AgendaItemOutcome"
|
|
257
|
-
|
|
485
|
+
"$ref": "#/$defs/AgendaItemOutcome"
|
|
486
|
+
decision_ref:
|
|
258
487
|
type: string
|
|
259
|
-
|
|
260
|
-
|
|
488
|
+
topics:
|
|
489
|
+
type: array
|
|
490
|
+
items:
|
|
491
|
+
"$ref": "#/$defs/Topic"
|
|
492
|
+
components:
|
|
493
|
+
type: array
|
|
494
|
+
items:
|
|
495
|
+
type: string
|
|
496
|
+
extensions:
|
|
497
|
+
type: array
|
|
498
|
+
items:
|
|
499
|
+
"$ref": "#/$defs/MeetingExtension"
|
|
261
500
|
Agenda:
|
|
262
501
|
type: object
|
|
263
502
|
description: |
|
|
@@ -268,213 +507,977 @@ $defs:
|
|
|
268
507
|
identifier:
|
|
269
508
|
type: array
|
|
270
509
|
items:
|
|
271
|
-
$ref: "#/$defs/StructuredIdentifier"
|
|
510
|
+
"$ref": "#/$defs/StructuredIdentifier"
|
|
272
511
|
status:
|
|
273
|
-
$ref: "#/$defs/AgendaStatus"
|
|
274
|
-
source_doc:
|
|
512
|
+
"$ref": "#/$defs/AgendaStatus"
|
|
513
|
+
source_doc:
|
|
514
|
+
type: string
|
|
275
515
|
items:
|
|
276
516
|
type: array
|
|
277
517
|
items:
|
|
278
|
-
$ref: "#/$defs/AgendaItem"
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
# ====================================================================
|
|
285
|
-
# Meeting side.
|
|
286
|
-
# ====================================================================
|
|
287
|
-
|
|
288
|
-
MeetingRelation:
|
|
289
|
-
type: object
|
|
290
|
-
description: "Directed link between two meetings."
|
|
291
|
-
additionalProperties: false
|
|
292
|
-
required: [source, destination, type]
|
|
293
|
-
properties:
|
|
294
|
-
source:
|
|
295
|
-
$ref: "#/$defs/StructuredIdentifier"
|
|
296
|
-
destination:
|
|
297
|
-
$ref: "#/$defs/StructuredIdentifier"
|
|
298
|
-
type:
|
|
299
|
-
$ref: "#/$defs/MeetingRelationType"
|
|
300
|
-
|
|
301
|
-
MeetingLocalization:
|
|
518
|
+
"$ref": "#/$defs/AgendaItem"
|
|
519
|
+
extensions:
|
|
520
|
+
type: array
|
|
521
|
+
items:
|
|
522
|
+
"$ref": "#/$defs/MeetingExtension"
|
|
523
|
+
TopicDocument:
|
|
302
524
|
type: object
|
|
303
|
-
description:
|
|
525
|
+
description: 'Text-bearing document about a Topic. 1.0: per-field Localized.'
|
|
304
526
|
additionalProperties: false
|
|
305
|
-
required: [language_code]
|
|
306
527
|
properties:
|
|
307
|
-
|
|
528
|
+
identifier:
|
|
308
529
|
type: string
|
|
309
|
-
|
|
310
|
-
|
|
530
|
+
title:
|
|
531
|
+
type: array
|
|
532
|
+
items:
|
|
533
|
+
"$ref": "#/$defs/LocalizedString"
|
|
534
|
+
version:
|
|
311
535
|
type: string
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
536
|
+
status:
|
|
537
|
+
type: string
|
|
538
|
+
url:
|
|
539
|
+
type: string
|
|
540
|
+
format:
|
|
541
|
+
type: string
|
|
542
|
+
spelling:
|
|
543
|
+
type: string
|
|
544
|
+
description: ISO 24229 spelling/conversion system code
|
|
545
|
+
extensions:
|
|
546
|
+
type: array
|
|
547
|
+
items:
|
|
548
|
+
"$ref": "#/$defs/MeetingExtension"
|
|
549
|
+
TopicAsset:
|
|
318
550
|
type: object
|
|
319
|
-
description:
|
|
551
|
+
description: 'Non-text resource about a Topic. 1.0: per-field Localized.'
|
|
320
552
|
additionalProperties: false
|
|
321
|
-
required: [identifier, type]
|
|
322
553
|
properties:
|
|
323
554
|
identifier:
|
|
555
|
+
type: string
|
|
556
|
+
title:
|
|
324
557
|
type: array
|
|
325
|
-
minItems: 1
|
|
326
558
|
items:
|
|
327
|
-
$ref: "#/$defs/
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
date_range:
|
|
337
|
-
$ref: "#/$defs/DateRange"
|
|
338
|
-
|
|
339
|
-
committee: { type: string }
|
|
340
|
-
committee_group: { type: string }
|
|
341
|
-
|
|
342
|
-
venues:
|
|
559
|
+
"$ref": "#/$defs/LocalizedString"
|
|
560
|
+
kind:
|
|
561
|
+
type: string
|
|
562
|
+
url:
|
|
563
|
+
type: string
|
|
564
|
+
format:
|
|
565
|
+
type: string
|
|
566
|
+
extensions:
|
|
343
567
|
type: array
|
|
344
568
|
items:
|
|
345
|
-
$ref: "#/$defs/
|
|
346
|
-
|
|
347
|
-
|
|
569
|
+
"$ref": "#/$defs/MeetingExtension"
|
|
570
|
+
Topic:
|
|
571
|
+
type: object
|
|
572
|
+
description: 'The subject of discussion at a Meeting. 1.0: per-field Localized.'
|
|
573
|
+
additionalProperties: false
|
|
574
|
+
properties:
|
|
575
|
+
identifier:
|
|
348
576
|
type: string
|
|
349
|
-
|
|
350
|
-
description: "UN/LOCODE of the host city (5-char: 2-letter ISO 3166-1 country + 3-char location, e.g. FRPAR, HKHKG, THCNM)."
|
|
351
|
-
country_code:
|
|
577
|
+
urn:
|
|
352
578
|
type: string
|
|
353
|
-
|
|
354
|
-
virtual: { type: boolean }
|
|
355
|
-
|
|
356
|
-
chair: { $ref: "#/$defs/Person" }
|
|
357
|
-
secretary: { $ref: "#/$defs/Person" }
|
|
358
|
-
host: { type: string }
|
|
359
|
-
hosts:
|
|
579
|
+
title:
|
|
360
580
|
type: array
|
|
361
581
|
items:
|
|
362
|
-
$ref: "#/$defs/
|
|
363
|
-
|
|
364
|
-
source_urls:
|
|
582
|
+
"$ref": "#/$defs/LocalizedString"
|
|
583
|
+
description:
|
|
365
584
|
type: array
|
|
366
585
|
items:
|
|
367
|
-
$ref: "#/$defs/
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
schedule:
|
|
586
|
+
"$ref": "#/$defs/LocalizedString"
|
|
587
|
+
status:
|
|
588
|
+
"$ref": "#/$defs/TopicStatus"
|
|
589
|
+
resumption_of:
|
|
590
|
+
type: string
|
|
591
|
+
documents:
|
|
374
592
|
type: array
|
|
375
593
|
items:
|
|
376
|
-
$ref: "#/$defs/
|
|
377
|
-
|
|
594
|
+
"$ref": "#/$defs/TopicDocument"
|
|
595
|
+
assets:
|
|
378
596
|
type: array
|
|
379
597
|
items:
|
|
380
|
-
$ref: "#/$defs/
|
|
381
|
-
|
|
598
|
+
"$ref": "#/$defs/TopicAsset"
|
|
599
|
+
references:
|
|
382
600
|
type: array
|
|
383
601
|
items:
|
|
384
|
-
$ref: "#/$defs/
|
|
385
|
-
|
|
602
|
+
"$ref": "#/$defs/Reference"
|
|
603
|
+
motions:
|
|
386
604
|
type: array
|
|
387
605
|
items:
|
|
388
|
-
|
|
389
|
-
|
|
606
|
+
type: string
|
|
607
|
+
decisions:
|
|
390
608
|
type: array
|
|
391
609
|
items:
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
localizations:
|
|
610
|
+
type: string
|
|
611
|
+
statements:
|
|
395
612
|
type: array
|
|
396
613
|
items:
|
|
397
|
-
$ref: "#/$defs/
|
|
398
|
-
|
|
614
|
+
"$ref": "#/$defs/Statement"
|
|
615
|
+
declarations:
|
|
399
616
|
type: array
|
|
400
617
|
items:
|
|
401
|
-
$ref: "#/$defs/
|
|
402
|
-
|
|
618
|
+
"$ref": "#/$defs/Declaration"
|
|
619
|
+
extensions:
|
|
403
620
|
type: array
|
|
404
|
-
items:
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
type: object
|
|
408
|
-
description: "Display-level metadata for a MeetingCollection."
|
|
409
|
-
additionalProperties: false
|
|
410
|
-
properties:
|
|
411
|
-
title: { type: string }
|
|
412
|
-
source: { type: string }
|
|
413
|
-
|
|
414
|
-
MeetingCollection:
|
|
621
|
+
items:
|
|
622
|
+
"$ref": "#/$defs/MeetingExtension"
|
|
623
|
+
Venue:
|
|
415
624
|
type: object
|
|
416
|
-
description:
|
|
625
|
+
description: |
|
|
626
|
+
Polymorphic place where a Meeting happens. `kind` discriminates
|
|
627
|
+
physical vs virtual; all fields from both subtypes live here as
|
|
628
|
+
optional siblings. 1.0: per-field Localized (name, label,
|
|
629
|
+
description, address, building, floor, room, access_notes).
|
|
630
|
+
Added `urn` (registry identity) and `ref` (reference-by-URN).
|
|
417
631
|
additionalProperties: false
|
|
418
|
-
required: [meetings]
|
|
419
632
|
properties:
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
633
|
+
ref:
|
|
634
|
+
type: string
|
|
635
|
+
local_ref:
|
|
636
|
+
type: string
|
|
637
|
+
urn:
|
|
638
|
+
type: string
|
|
639
|
+
pattern: "^urn:edoxen:venue:[^:]+:[^:]+$"
|
|
640
|
+
kind:
|
|
641
|
+
"$ref": "#/$defs/VenueKind"
|
|
642
|
+
name:
|
|
423
643
|
type: array
|
|
424
644
|
items:
|
|
425
|
-
$ref: "#/$defs/
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
645
|
+
"$ref": "#/$defs/LocalizedString"
|
|
646
|
+
label:
|
|
647
|
+
type: array
|
|
648
|
+
items:
|
|
649
|
+
"$ref": "#/$defs/LocalizedString"
|
|
650
|
+
description:
|
|
651
|
+
type: array
|
|
652
|
+
items:
|
|
653
|
+
"$ref": "#/$defs/LocalizedString"
|
|
654
|
+
capacity:
|
|
655
|
+
type: integer
|
|
656
|
+
url:
|
|
657
|
+
type: string
|
|
658
|
+
contact_methods:
|
|
659
|
+
type: array
|
|
660
|
+
items:
|
|
661
|
+
"$ref": "#/$defs/ContactMethod"
|
|
662
|
+
unlocode:
|
|
663
|
+
type: string
|
|
664
|
+
pattern: "^[A-Z]{2}[A-Z0-9]{3}$"
|
|
665
|
+
iata_code:
|
|
666
|
+
type: string
|
|
667
|
+
pattern: "^[A-Z]{3}$"
|
|
668
|
+
address:
|
|
669
|
+
type: array
|
|
670
|
+
items:
|
|
671
|
+
"$ref": "#/$defs/LocalizedString"
|
|
672
|
+
city:
|
|
673
|
+
type: string
|
|
674
|
+
country_code:
|
|
675
|
+
type: string
|
|
676
|
+
pattern: "^[A-Z]{2}$"
|
|
677
|
+
lat:
|
|
678
|
+
type: number
|
|
679
|
+
lon:
|
|
680
|
+
type: number
|
|
681
|
+
building:
|
|
682
|
+
type: array
|
|
683
|
+
items:
|
|
684
|
+
"$ref": "#/$defs/LocalizedString"
|
|
685
|
+
floor:
|
|
686
|
+
type: array
|
|
687
|
+
items:
|
|
688
|
+
"$ref": "#/$defs/LocalizedString"
|
|
689
|
+
room:
|
|
690
|
+
type: array
|
|
691
|
+
items:
|
|
692
|
+
"$ref": "#/$defs/LocalizedString"
|
|
693
|
+
access_notes:
|
|
694
|
+
type: array
|
|
695
|
+
items:
|
|
696
|
+
"$ref": "#/$defs/LocalizedString"
|
|
697
|
+
uri:
|
|
698
|
+
type: string
|
|
699
|
+
features:
|
|
700
|
+
type: array
|
|
701
|
+
items:
|
|
702
|
+
"$ref": "#/$defs/VirtualFeature"
|
|
703
|
+
passcode:
|
|
704
|
+
type: string
|
|
705
|
+
meeting_id:
|
|
706
|
+
type: string
|
|
707
|
+
dial_in_numbers:
|
|
708
|
+
type: array
|
|
709
|
+
items:
|
|
710
|
+
type: string
|
|
711
|
+
waiting_room:
|
|
712
|
+
type: boolean
|
|
713
|
+
registration_required:
|
|
714
|
+
type: boolean
|
|
715
|
+
extensions:
|
|
716
|
+
type: array
|
|
717
|
+
items:
|
|
718
|
+
"$ref": "#/$defs/MeetingExtension"
|
|
719
|
+
RecurrenceByDay:
|
|
720
|
+
type: object
|
|
721
|
+
description: BYDAY part of a recurrence. `ordinal` is null for 'every', +1 for first, -1 for last.
|
|
722
|
+
additionalProperties: false
|
|
723
|
+
properties:
|
|
724
|
+
ordinal:
|
|
725
|
+
type: integer
|
|
726
|
+
weekday:
|
|
727
|
+
type: string
|
|
728
|
+
Recurrence:
|
|
729
|
+
type: object
|
|
730
|
+
description: Structured ISO 8601-2 §13 recurrence.
|
|
731
|
+
additionalProperties: false
|
|
732
|
+
properties:
|
|
733
|
+
freq:
|
|
734
|
+
"$ref": "#/$defs/RecurrenceFreq"
|
|
735
|
+
interval:
|
|
736
|
+
type: integer
|
|
737
|
+
count:
|
|
738
|
+
type: integer
|
|
739
|
+
until:
|
|
740
|
+
type: string
|
|
741
|
+
format: date-time
|
|
742
|
+
by_day:
|
|
743
|
+
type: array
|
|
744
|
+
items:
|
|
745
|
+
"$ref": "#/$defs/RecurrenceByDay"
|
|
746
|
+
by_month_day:
|
|
747
|
+
type: array
|
|
748
|
+
items:
|
|
749
|
+
type: integer
|
|
750
|
+
by_month:
|
|
751
|
+
type: array
|
|
752
|
+
items:
|
|
753
|
+
type: integer
|
|
754
|
+
by_week_no:
|
|
755
|
+
type: array
|
|
756
|
+
items:
|
|
757
|
+
type: integer
|
|
758
|
+
by_year_day:
|
|
759
|
+
type: array
|
|
760
|
+
items:
|
|
761
|
+
type: integer
|
|
762
|
+
by_hour:
|
|
763
|
+
type: array
|
|
764
|
+
items:
|
|
765
|
+
type: integer
|
|
766
|
+
by_minute:
|
|
767
|
+
type: array
|
|
768
|
+
items:
|
|
769
|
+
type: integer
|
|
770
|
+
by_second:
|
|
771
|
+
type: array
|
|
772
|
+
items:
|
|
773
|
+
type: integer
|
|
774
|
+
by_set_pos:
|
|
775
|
+
type: array
|
|
776
|
+
items:
|
|
777
|
+
type: integer
|
|
778
|
+
week_start:
|
|
779
|
+
type: string
|
|
780
|
+
extensions:
|
|
781
|
+
type: array
|
|
782
|
+
items:
|
|
783
|
+
"$ref": "#/$defs/MeetingExtension"
|
|
784
|
+
ExtensionAttribute:
|
|
785
|
+
type: object
|
|
786
|
+
description: |
|
|
787
|
+
One typed key/value pair within a MeetingExtension. Polymorphic on
|
|
788
|
+
value type so consumers don't re-parse strings back into Int/Float/
|
|
789
|
+
Bool/Date (1.0 tighten, TODO.refactor/1.0-design).
|
|
790
|
+
additionalProperties: false
|
|
791
|
+
properties:
|
|
792
|
+
key:
|
|
793
|
+
type: string
|
|
794
|
+
type:
|
|
795
|
+
type: string
|
|
796
|
+
enum:
|
|
797
|
+
- string
|
|
798
|
+
- integer
|
|
799
|
+
- float
|
|
800
|
+
- boolean
|
|
801
|
+
- date
|
|
802
|
+
- datetime
|
|
803
|
+
value:
|
|
804
|
+
type: string
|
|
805
|
+
intValue:
|
|
806
|
+
type: integer
|
|
807
|
+
floatValue:
|
|
808
|
+
type: number
|
|
809
|
+
booleanValue:
|
|
810
|
+
type: boolean
|
|
811
|
+
dateValue:
|
|
812
|
+
type: string
|
|
813
|
+
format: date
|
|
814
|
+
dateTimeValue:
|
|
815
|
+
type: string
|
|
816
|
+
format: date-time
|
|
817
|
+
MeetingExtension:
|
|
818
|
+
type: object
|
|
819
|
+
description: |
|
|
820
|
+
Profile-specific extension. Adopters register their namespace via
|
|
821
|
+
`profile` and discriminate via `kind`. Field semantics tightened
|
|
822
|
+
1.0 (TODO.refactor/1.0-design): `kind` is the in-profile discriminator,
|
|
823
|
+
`ref` is the URN of an external profile document, and the
|
|
824
|
+
recursive `extensions[]` slot was removed (YAGNI — use dotted
|
|
825
|
+
keys in `attributes[]` for nesting).
|
|
826
|
+
additionalProperties: false
|
|
827
|
+
properties:
|
|
828
|
+
profile:
|
|
829
|
+
type: string
|
|
830
|
+
kind:
|
|
831
|
+
type: string
|
|
832
|
+
ref:
|
|
833
|
+
type: string
|
|
834
|
+
attributes:
|
|
835
|
+
type: array
|
|
836
|
+
items:
|
|
837
|
+
"$ref": "#/$defs/ExtensionAttribute"
|
|
838
|
+
Officer:
|
|
839
|
+
type: object
|
|
840
|
+
description: A person holding a structural role in a Meeting.
|
|
841
|
+
additionalProperties: false
|
|
842
|
+
properties:
|
|
843
|
+
role:
|
|
844
|
+
"$ref": "#/$defs/OfficerRole"
|
|
845
|
+
person:
|
|
846
|
+
"$ref": "#/$defs/Person"
|
|
847
|
+
term_start:
|
|
848
|
+
type: string
|
|
849
|
+
format: date
|
|
850
|
+
term_end:
|
|
851
|
+
type: string
|
|
852
|
+
format: date
|
|
853
|
+
extensions:
|
|
854
|
+
type: array
|
|
855
|
+
items:
|
|
856
|
+
"$ref": "#/$defs/MeetingExtension"
|
|
857
|
+
MeetingComponent:
|
|
858
|
+
type: object
|
|
859
|
+
description: 'Flat sub-event of a Meeting. 1.0: per-field Localized.'
|
|
860
|
+
additionalProperties: false
|
|
861
|
+
properties:
|
|
862
|
+
identifier:
|
|
863
|
+
type: string
|
|
864
|
+
urn:
|
|
865
|
+
type: string
|
|
866
|
+
kind:
|
|
867
|
+
"$ref": "#/$defs/ComponentKind"
|
|
868
|
+
body_type:
|
|
869
|
+
type: string
|
|
870
|
+
title:
|
|
871
|
+
type: array
|
|
872
|
+
items:
|
|
873
|
+
"$ref": "#/$defs/LocalizedString"
|
|
874
|
+
description:
|
|
875
|
+
type: array
|
|
876
|
+
items:
|
|
877
|
+
"$ref": "#/$defs/LocalizedString"
|
|
878
|
+
starts_at:
|
|
879
|
+
type: string
|
|
880
|
+
format: date-time
|
|
881
|
+
ends_at:
|
|
882
|
+
type: string
|
|
883
|
+
format: date-time
|
|
884
|
+
time_label:
|
|
885
|
+
type: array
|
|
886
|
+
items:
|
|
887
|
+
"$ref": "#/$defs/LocalizedString"
|
|
888
|
+
venue_refs:
|
|
889
|
+
type: array
|
|
890
|
+
items:
|
|
891
|
+
type: string
|
|
892
|
+
officers:
|
|
893
|
+
type: array
|
|
894
|
+
items:
|
|
895
|
+
"$ref": "#/$defs/Officer"
|
|
896
|
+
agenda_ref:
|
|
897
|
+
type: string
|
|
898
|
+
minutes_ref:
|
|
899
|
+
type: string
|
|
900
|
+
attendance_refs:
|
|
901
|
+
type: array
|
|
902
|
+
items:
|
|
903
|
+
type: string
|
|
904
|
+
extensions:
|
|
905
|
+
type: array
|
|
906
|
+
items:
|
|
907
|
+
"$ref": "#/$defs/MeetingExtension"
|
|
908
|
+
MeetingSeries:
|
|
909
|
+
type: object
|
|
910
|
+
description: 'Parent of recurring Meeting instances. 1.0: per-field Localized.'
|
|
911
|
+
additionalProperties: false
|
|
912
|
+
properties:
|
|
913
|
+
identifier:
|
|
914
|
+
type: array
|
|
915
|
+
items:
|
|
916
|
+
"$ref": "#/$defs/StructuredIdentifier"
|
|
917
|
+
urn:
|
|
918
|
+
type: string
|
|
919
|
+
name:
|
|
920
|
+
type: array
|
|
921
|
+
items:
|
|
922
|
+
"$ref": "#/$defs/LocalizedString"
|
|
923
|
+
description:
|
|
924
|
+
type: array
|
|
925
|
+
items:
|
|
926
|
+
"$ref": "#/$defs/LocalizedString"
|
|
927
|
+
recurrence:
|
|
928
|
+
"$ref": "#/$defs/Recurrence"
|
|
929
|
+
term:
|
|
930
|
+
type: string
|
|
931
|
+
contact:
|
|
932
|
+
"$ref": "#/$defs/Contact"
|
|
933
|
+
hosts:
|
|
934
|
+
type: array
|
|
935
|
+
items:
|
|
936
|
+
"$ref": "#/$defs/HostRef"
|
|
937
|
+
kind:
|
|
938
|
+
type: string
|
|
939
|
+
meeting_refs:
|
|
940
|
+
type: array
|
|
941
|
+
items:
|
|
942
|
+
type: string
|
|
943
|
+
extensions:
|
|
944
|
+
type: array
|
|
945
|
+
items:
|
|
946
|
+
"$ref": "#/$defs/MeetingExtension"
|
|
947
|
+
body_type:
|
|
948
|
+
type: string
|
|
949
|
+
MeetingRelation:
|
|
950
|
+
type: object
|
|
951
|
+
description: Directed link between two meetings.
|
|
952
|
+
additionalProperties: false
|
|
953
|
+
required:
|
|
954
|
+
- source
|
|
955
|
+
- destination
|
|
956
|
+
- type
|
|
957
|
+
properties:
|
|
958
|
+
source:
|
|
959
|
+
"$ref": "#/$defs/StructuredIdentifier"
|
|
960
|
+
destination:
|
|
961
|
+
"$ref": "#/$defs/StructuredIdentifier"
|
|
962
|
+
type:
|
|
963
|
+
"$ref": "#/$defs/MeetingRelationType"
|
|
964
|
+
Meeting:
|
|
965
|
+
type: object
|
|
966
|
+
description: 'A single Meeting (event). 1.0: per-field Localized.'
|
|
967
|
+
additionalProperties: false
|
|
968
|
+
required:
|
|
969
|
+
- identifier
|
|
970
|
+
- type
|
|
971
|
+
properties:
|
|
972
|
+
identifier:
|
|
973
|
+
type: array
|
|
974
|
+
minItems: 1
|
|
975
|
+
items:
|
|
976
|
+
"$ref": "#/$defs/StructuredIdentifier"
|
|
977
|
+
urn:
|
|
978
|
+
type: string
|
|
979
|
+
ordinal:
|
|
980
|
+
type: integer
|
|
981
|
+
series_ref:
|
|
982
|
+
type: string
|
|
983
|
+
type:
|
|
984
|
+
"$ref": "#/$defs/MeetingType"
|
|
985
|
+
status:
|
|
986
|
+
"$ref": "#/$defs/MeetingStatus"
|
|
987
|
+
visibility:
|
|
988
|
+
"$ref": "#/$defs/Visibility"
|
|
989
|
+
body_type:
|
|
990
|
+
type: string
|
|
991
|
+
title:
|
|
992
|
+
type: array
|
|
993
|
+
items:
|
|
994
|
+
"$ref": "#/$defs/LocalizedString"
|
|
995
|
+
scheduled_date_range:
|
|
996
|
+
"$ref": "#/$defs/DateRange"
|
|
997
|
+
occurred_date_range:
|
|
998
|
+
"$ref": "#/$defs/DateTimeRange"
|
|
999
|
+
recurrence:
|
|
1000
|
+
"$ref": "#/$defs/Recurrence"
|
|
1001
|
+
venues:
|
|
1002
|
+
type: array
|
|
1003
|
+
items:
|
|
1004
|
+
"$ref": "#/$defs/Venue"
|
|
1005
|
+
general_area:
|
|
1006
|
+
type: array
|
|
1007
|
+
items:
|
|
1008
|
+
"$ref": "#/$defs/LocalizedString"
|
|
1009
|
+
practical_info:
|
|
1010
|
+
type: array
|
|
1011
|
+
items:
|
|
1012
|
+
"$ref": "#/$defs/LocalizedString"
|
|
1013
|
+
city:
|
|
1014
|
+
type: string
|
|
1015
|
+
pattern: "^[A-Z]{2}[A-Z0-9]{3}$"
|
|
1016
|
+
country_code:
|
|
1017
|
+
type: string
|
|
1018
|
+
pattern: "^[A-Z]{2}$"
|
|
1019
|
+
committee:
|
|
1020
|
+
"$ref": "#/$defs/Body"
|
|
1021
|
+
committee_group:
|
|
1022
|
+
"$ref": "#/$defs/Body"
|
|
1023
|
+
officers:
|
|
1024
|
+
type: array
|
|
1025
|
+
items:
|
|
1026
|
+
"$ref": "#/$defs/Officer"
|
|
1027
|
+
hosts:
|
|
1028
|
+
type: array
|
|
1029
|
+
items:
|
|
1030
|
+
"$ref": "#/$defs/HostRef"
|
|
1031
|
+
source_urls:
|
|
1032
|
+
type: array
|
|
1033
|
+
items:
|
|
1034
|
+
"$ref": "#/$defs/SourceUrl"
|
|
1035
|
+
landing_url:
|
|
1036
|
+
type: string
|
|
1037
|
+
registration_url:
|
|
1038
|
+
type: string
|
|
1039
|
+
note:
|
|
1040
|
+
type: array
|
|
1041
|
+
items:
|
|
1042
|
+
"$ref": "#/$defs/LocalizedString"
|
|
1043
|
+
contact:
|
|
1044
|
+
"$ref": "#/$defs/Contact"
|
|
1045
|
+
contacts:
|
|
1046
|
+
type: array
|
|
1047
|
+
items:
|
|
1048
|
+
"$ref": "#/$defs/Contact"
|
|
1049
|
+
bodies:
|
|
1050
|
+
type: array
|
|
1051
|
+
items:
|
|
1052
|
+
"$ref": "#/$defs/Body"
|
|
1053
|
+
agenda:
|
|
1054
|
+
"$ref": "#/$defs/Agenda"
|
|
1055
|
+
components:
|
|
1056
|
+
type: array
|
|
1057
|
+
items:
|
|
1058
|
+
"$ref": "#/$defs/MeetingComponent"
|
|
1059
|
+
deadlines:
|
|
1060
|
+
type: array
|
|
1061
|
+
items:
|
|
1062
|
+
"$ref": "#/$defs/Deadline"
|
|
1063
|
+
attendance:
|
|
1064
|
+
type: array
|
|
1065
|
+
items:
|
|
1066
|
+
"$ref": "#/$defs/Attendance"
|
|
1067
|
+
minutes:
|
|
1068
|
+
type: array
|
|
1069
|
+
items:
|
|
1070
|
+
"$ref": "#/$defs/Minutes"
|
|
1071
|
+
declarations:
|
|
1072
|
+
type: array
|
|
1073
|
+
items:
|
|
1074
|
+
"$ref": "#/$defs/Declaration"
|
|
1075
|
+
decisions:
|
|
1076
|
+
type: array
|
|
1077
|
+
items:
|
|
1078
|
+
"$ref": "#/$defs/StructuredIdentifier"
|
|
1079
|
+
motions:
|
|
1080
|
+
type: array
|
|
1081
|
+
items:
|
|
1082
|
+
"$ref": "#/$defs/StructuredIdentifier"
|
|
1083
|
+
votings:
|
|
1084
|
+
type: array
|
|
1085
|
+
items:
|
|
1086
|
+
"$ref": "#/$defs/StructuredIdentifier"
|
|
1087
|
+
relations:
|
|
1088
|
+
type: array
|
|
1089
|
+
items:
|
|
1090
|
+
"$ref": "#/$defs/MeetingRelation"
|
|
1091
|
+
extensions:
|
|
1092
|
+
type: array
|
|
1093
|
+
items:
|
|
1094
|
+
"$ref": "#/$defs/MeetingExtension"
|
|
1095
|
+
MeetingCollectionMetadata:
|
|
1096
|
+
type: object
|
|
1097
|
+
description: 'Display-level metadata for a MeetingCollection. 1.0: per-field Localized.'
|
|
1098
|
+
additionalProperties: false
|
|
1099
|
+
properties:
|
|
1100
|
+
title:
|
|
1101
|
+
type: array
|
|
1102
|
+
items:
|
|
1103
|
+
"$ref": "#/$defs/LocalizedString"
|
|
1104
|
+
source:
|
|
1105
|
+
type: string
|
|
1106
|
+
body_vocabulary:
|
|
1107
|
+
type: array
|
|
1108
|
+
items:
|
|
1109
|
+
"$ref": "#/$defs/BodyVocabularyEntry"
|
|
1110
|
+
BodyVocabularyEntry:
|
|
1111
|
+
type: object
|
|
1112
|
+
description: |
|
|
1113
|
+
One entry in a per-dataset body_vocabulary list. Maps a free-form
|
|
1114
|
+
body_type to a short canonical value. SSOT for body_type ->
|
|
1115
|
+
canonical_type resolution within the declaring collection.
|
|
1116
|
+
additionalProperties: false
|
|
1117
|
+
properties:
|
|
1118
|
+
body_type:
|
|
1119
|
+
type: string
|
|
1120
|
+
canonical_type:
|
|
1121
|
+
type: string
|
|
1122
|
+
definition:
|
|
1123
|
+
type: string
|
|
1124
|
+
MeetingCollection:
|
|
1125
|
+
type: object
|
|
1126
|
+
description: Top-level wrapper for many Meetings in one file.
|
|
1127
|
+
additionalProperties: false
|
|
1128
|
+
required:
|
|
1129
|
+
- meetings
|
|
1130
|
+
properties:
|
|
1131
|
+
metadata:
|
|
1132
|
+
"$ref": "#/$defs/MeetingCollectionMetadata"
|
|
1133
|
+
meetings:
|
|
1134
|
+
type: array
|
|
1135
|
+
items:
|
|
1136
|
+
"$ref": "#/$defs/Meeting"
|
|
1137
|
+
MeetingType:
|
|
1138
|
+
type: string
|
|
1139
|
+
description: Edoxen::Enums::MEETING_TYPE.
|
|
1140
|
+
enum:
|
|
1141
|
+
- plenary
|
|
1142
|
+
- working_group
|
|
1143
|
+
- task_group
|
|
1144
|
+
- ad_hoc
|
|
1145
|
+
- joint
|
|
1146
|
+
- general_assembly
|
|
1147
|
+
- committee
|
|
1148
|
+
- subcommittee
|
|
1149
|
+
- conference
|
|
1150
|
+
- workshop
|
|
1151
|
+
- seminar
|
|
1152
|
+
- webinar
|
|
1153
|
+
- hearing
|
|
1154
|
+
- markup
|
|
1155
|
+
- board_meeting
|
|
1156
|
+
- annual_general_meeting
|
|
1157
|
+
- other
|
|
1158
|
+
MeetingTypeCanonical:
|
|
1159
|
+
type: string
|
|
1160
|
+
description: |
|
|
1161
|
+
Edoxen::Enums::MEETING_TYPE_CANONICAL — short abstract set (1.0,
|
|
1162
|
+
TODO.refactor/1.0-design). No `other` escape — bodies pick the closest
|
|
1163
|
+
fit and use `body_type` for body-specific terminology.
|
|
1164
|
+
enum:
|
|
1165
|
+
- plenary
|
|
1166
|
+
- governing
|
|
1167
|
+
- working
|
|
1168
|
+
- advisory
|
|
1169
|
+
MeetingStatus:
|
|
1170
|
+
type: string
|
|
1171
|
+
description: Edoxen::Enums::MEETING_STATUS.
|
|
1172
|
+
enum:
|
|
1173
|
+
- upcoming
|
|
1174
|
+
- completed
|
|
1175
|
+
- cancelled
|
|
1176
|
+
AgendaStatus:
|
|
1177
|
+
type: string
|
|
1178
|
+
description: Edoxen::Enums::AGENDA_STATUS.
|
|
1179
|
+
enum:
|
|
1180
|
+
- draft
|
|
1181
|
+
- final
|
|
1182
|
+
- amended
|
|
1183
|
+
- cancelled
|
|
1184
|
+
- superseded
|
|
1185
|
+
AgendaItemKind:
|
|
1186
|
+
type: string
|
|
1187
|
+
description: Edoxen::Enums::AGENDA_ITEM_KIND.
|
|
1188
|
+
enum:
|
|
1189
|
+
- numbered
|
|
1190
|
+
- unnumbered
|
|
1191
|
+
- header
|
|
1192
|
+
- opening
|
|
1193
|
+
- closing
|
|
1194
|
+
- aob
|
|
1195
|
+
AgendaItemOutcome:
|
|
1196
|
+
type: string
|
|
1197
|
+
description: Edoxen::Enums::AGENDA_ITEM_OUTCOME.
|
|
1198
|
+
enum:
|
|
1199
|
+
- discussed
|
|
1200
|
+
- resolved
|
|
1201
|
+
- deferred
|
|
1202
|
+
- adopted
|
|
1203
|
+
- withdrawn
|
|
1204
|
+
- carried
|
|
1205
|
+
- negatived
|
|
457
1206
|
HostType:
|
|
458
1207
|
type: string
|
|
459
|
-
description:
|
|
460
|
-
enum:
|
|
461
|
-
|
|
1208
|
+
description: Edoxen::Enums::HOST_TYPE.
|
|
1209
|
+
enum:
|
|
1210
|
+
- national_body
|
|
1211
|
+
- liaison
|
|
1212
|
+
- associate
|
|
1213
|
+
- organizer
|
|
462
1214
|
MeetingRelationType:
|
|
463
1215
|
type: string
|
|
464
|
-
description:
|
|
465
|
-
enum:
|
|
466
|
-
|
|
1216
|
+
description: Edoxen::Enums::MEETING_RELATION_TYPE.
|
|
1217
|
+
enum:
|
|
1218
|
+
- continues_from
|
|
1219
|
+
- continues_to
|
|
1220
|
+
- joint_with
|
|
1221
|
+
- supersedes
|
|
1222
|
+
- superseded_by
|
|
1223
|
+
- rescheduled_from
|
|
1224
|
+
- rescheduled_to
|
|
1225
|
+
- parent_of
|
|
1226
|
+
- child_of
|
|
1227
|
+
- sibling_of
|
|
1228
|
+
- depends_on
|
|
1229
|
+
- finish_to_start
|
|
1230
|
+
- finish_to_finish
|
|
1231
|
+
- start_to_start
|
|
1232
|
+
- start_to_finish
|
|
467
1233
|
SourceUrlKind:
|
|
468
1234
|
type: string
|
|
469
|
-
description:
|
|
470
|
-
enum:
|
|
471
|
-
|
|
1235
|
+
description: Edoxen::Enums::SOURCE_URL_KIND.
|
|
1236
|
+
enum:
|
|
1237
|
+
- agenda_pdf
|
|
1238
|
+
- minutes_pdf
|
|
1239
|
+
- decisions_pdf
|
|
1240
|
+
- report_pdf
|
|
1241
|
+
- register_url
|
|
1242
|
+
- landing_page
|
|
472
1243
|
ParticipationStatus:
|
|
473
1244
|
type: string
|
|
474
|
-
description:
|
|
475
|
-
enum:
|
|
476
|
-
|
|
1245
|
+
description: Edoxen::Enums::PARTICIPATION_STATUS.
|
|
1246
|
+
enum:
|
|
1247
|
+
- present
|
|
1248
|
+
- absent
|
|
1249
|
+
- apologies
|
|
1250
|
+
- observer
|
|
1251
|
+
- excused
|
|
1252
|
+
AttendanceRole:
|
|
1253
|
+
type: string
|
|
1254
|
+
description: Edoxen::Enums::ATTENDANCE_ROLE.
|
|
1255
|
+
enum:
|
|
1256
|
+
- chair
|
|
1257
|
+
- required
|
|
1258
|
+
- optional
|
|
1259
|
+
- non_participant
|
|
1260
|
+
AttendanceResponse:
|
|
1261
|
+
type: string
|
|
1262
|
+
description: Edoxen::Enums::ATTENDANCE_RESPONSE.
|
|
1263
|
+
enum:
|
|
1264
|
+
- pending
|
|
1265
|
+
- confirmed
|
|
1266
|
+
- declined
|
|
1267
|
+
- tentative
|
|
1268
|
+
- delegated
|
|
477
1269
|
VoteType:
|
|
478
1270
|
type: string
|
|
479
|
-
description:
|
|
480
|
-
enum:
|
|
1271
|
+
description: Edoxen::Enums::VOTE_TYPE.
|
|
1272
|
+
enum:
|
|
1273
|
+
- affirmative
|
|
1274
|
+
- negative
|
|
1275
|
+
- abstain
|
|
1276
|
+
- absent
|
|
1277
|
+
- not_applicable
|
|
1278
|
+
TopicStatus:
|
|
1279
|
+
type: string
|
|
1280
|
+
description: Edoxen::Enums::TOPIC_STATUS.
|
|
1281
|
+
enum:
|
|
1282
|
+
- open
|
|
1283
|
+
- under_discussion
|
|
1284
|
+
- decided
|
|
1285
|
+
- deferred
|
|
1286
|
+
- withdrawn
|
|
1287
|
+
VenueKind:
|
|
1288
|
+
type: string
|
|
1289
|
+
description: Edoxen::Enums::VENUE_KIND.
|
|
1290
|
+
enum:
|
|
1291
|
+
- physical
|
|
1292
|
+
- virtual
|
|
1293
|
+
VirtualFeature:
|
|
1294
|
+
type: string
|
|
1295
|
+
description: Edoxen::Enums::VIRTUAL_FEATURE.
|
|
1296
|
+
enum:
|
|
1297
|
+
- audio
|
|
1298
|
+
- video
|
|
1299
|
+
- chat
|
|
1300
|
+
- phone
|
|
1301
|
+
- screen
|
|
1302
|
+
- feed
|
|
1303
|
+
Visibility:
|
|
1304
|
+
type: string
|
|
1305
|
+
description: Edoxen::Enums::VISIBILITY.
|
|
1306
|
+
enum:
|
|
1307
|
+
- public
|
|
1308
|
+
- private
|
|
1309
|
+
- confidential
|
|
1310
|
+
ComponentKind:
|
|
1311
|
+
type: string
|
|
1312
|
+
description: Edoxen::Enums::COMPONENT_KIND.
|
|
1313
|
+
enum:
|
|
1314
|
+
- track
|
|
1315
|
+
- session
|
|
1316
|
+
- debate
|
|
1317
|
+
- breakout
|
|
1318
|
+
- bof
|
|
1319
|
+
- plenary_session
|
|
1320
|
+
- working_group_session
|
|
1321
|
+
- committee_of_the_whole
|
|
1322
|
+
- keynote
|
|
1323
|
+
- address
|
|
1324
|
+
- statement
|
|
1325
|
+
- question_time
|
|
1326
|
+
- opening
|
|
1327
|
+
- closing
|
|
1328
|
+
- break
|
|
1329
|
+
- reception
|
|
1330
|
+
- registration
|
|
1331
|
+
- networking
|
|
1332
|
+
- other
|
|
1333
|
+
OfficerRole:
|
|
1334
|
+
type: string
|
|
1335
|
+
description: Edoxen::Enums::OFFICER_ROLE.
|
|
1336
|
+
enum:
|
|
1337
|
+
- chair
|
|
1338
|
+
- vice_chair
|
|
1339
|
+
- deputy_chair
|
|
1340
|
+
- secretary
|
|
1341
|
+
- treasurer
|
|
1342
|
+
- parliamentarian
|
|
1343
|
+
- presiding_officer
|
|
1344
|
+
- sergeant_at_arms
|
|
1345
|
+
- other
|
|
1346
|
+
RecurrenceFreq:
|
|
1347
|
+
type: string
|
|
1348
|
+
description: Edoxen::Enums::RECURRENCE_FREQ.
|
|
1349
|
+
enum:
|
|
1350
|
+
- secondly
|
|
1351
|
+
- minutely
|
|
1352
|
+
- hourly
|
|
1353
|
+
- daily
|
|
1354
|
+
- weekly
|
|
1355
|
+
- monthly
|
|
1356
|
+
- yearly
|
|
1357
|
+
DateTimeRange:
|
|
1358
|
+
type: object
|
|
1359
|
+
description: |
|
|
1360
|
+
Start + end pair with sub-day precision. Parallel to DateRange;
|
|
1361
|
+
use when day granularity is insufficient (e.g. a meeting that
|
|
1362
|
+
ran 09:00–11:30).
|
|
1363
|
+
additionalProperties: false
|
|
1364
|
+
properties:
|
|
1365
|
+
start:
|
|
1366
|
+
type: string
|
|
1367
|
+
format: date-time
|
|
1368
|
+
end:
|
|
1369
|
+
type: string
|
|
1370
|
+
format: date-time
|
|
1371
|
+
StatementKind:
|
|
1372
|
+
type: string
|
|
1373
|
+
description: |
|
|
1374
|
+
Discriminator for the three BS 0:2006 statement types. Adding a
|
|
1375
|
+
new kind is a one-line enum extension; the Statement model
|
|
1376
|
+
itself never needs to change (OCP).
|
|
1377
|
+
enum:
|
|
1378
|
+
- statement
|
|
1379
|
+
- comment
|
|
1380
|
+
- standpoint
|
|
1381
|
+
DeclarationKind:
|
|
1382
|
+
type: string
|
|
1383
|
+
description: |
|
|
1384
|
+
Discriminator for the two BS 0:2006 declaration types
|
|
1385
|
+
(conflict of interest, IPR).
|
|
1386
|
+
enum:
|
|
1387
|
+
- conflict_of_interest
|
|
1388
|
+
- ipr
|
|
1389
|
+
Statement:
|
|
1390
|
+
type: object
|
|
1391
|
+
description: |
|
|
1392
|
+
One remark made by one or more meeting members on a topic or a
|
|
1393
|
+
minutes section. Per-field Localized description; party is a
|
|
1394
|
+
list of Person references. The `kind` discriminator separates
|
|
1395
|
+
the three BS 0:2006 statement types.
|
|
1396
|
+
additionalProperties: false
|
|
1397
|
+
properties:
|
|
1398
|
+
kind:
|
|
1399
|
+
"$ref": "#/$defs/StatementKind"
|
|
1400
|
+
description:
|
|
1401
|
+
type: array
|
|
1402
|
+
items:
|
|
1403
|
+
"$ref": "#/$defs/LocalizedString"
|
|
1404
|
+
party:
|
|
1405
|
+
type: array
|
|
1406
|
+
items:
|
|
1407
|
+
"$ref": "#/$defs/Person"
|
|
1408
|
+
extensions:
|
|
1409
|
+
type: array
|
|
1410
|
+
items:
|
|
1411
|
+
"$ref": "#/$defs/MeetingExtension"
|
|
1412
|
+
Declaration:
|
|
1413
|
+
type: object
|
|
1414
|
+
description: |
|
|
1415
|
+
A formal declaration (conflict of interest or IPR) made by one
|
|
1416
|
+
or more meeting members. IPR-specific fields (`ipr_subject_ref`,
|
|
1417
|
+
`ipr_target_ref`) are populated only when `kind == "ipr"`.
|
|
1418
|
+
additionalProperties: false
|
|
1419
|
+
properties:
|
|
1420
|
+
kind:
|
|
1421
|
+
"$ref": "#/$defs/DeclarationKind"
|
|
1422
|
+
description:
|
|
1423
|
+
type: array
|
|
1424
|
+
items:
|
|
1425
|
+
"$ref": "#/$defs/LocalizedString"
|
|
1426
|
+
party:
|
|
1427
|
+
type: array
|
|
1428
|
+
items:
|
|
1429
|
+
"$ref": "#/$defs/Person"
|
|
1430
|
+
ipr_subject_ref:
|
|
1431
|
+
"$ref": "#/$defs/EntityRef"
|
|
1432
|
+
ipr_target_ref:
|
|
1433
|
+
"$ref": "#/$defs/EntityRef"
|
|
1434
|
+
extensions:
|
|
1435
|
+
type: array
|
|
1436
|
+
items:
|
|
1437
|
+
"$ref": "#/$defs/MeetingExtension"
|
|
1438
|
+
Body:
|
|
1439
|
+
type: object
|
|
1440
|
+
description: |
|
|
1441
|
+
A committee, subcommittee, working group, or other organised body.
|
|
1442
|
+
Three-tier entity resolution (ref / local_ref / inline).
|
|
1443
|
+
additionalProperties: false
|
|
1444
|
+
properties:
|
|
1445
|
+
ref:
|
|
1446
|
+
type: string
|
|
1447
|
+
local_ref:
|
|
1448
|
+
type: string
|
|
1449
|
+
code:
|
|
1450
|
+
type: string
|
|
1451
|
+
name:
|
|
1452
|
+
type: array
|
|
1453
|
+
items:
|
|
1454
|
+
"$ref": "#/$defs/LocalizedString"
|
|
1455
|
+
kind:
|
|
1456
|
+
type: string
|
|
1457
|
+
parent_ref:
|
|
1458
|
+
"$ref": "#/$defs/EntityRef"
|
|
1459
|
+
extensions:
|
|
1460
|
+
type: array
|
|
1461
|
+
items:
|
|
1462
|
+
"$ref": "#/$defs/MeetingExtension"
|
|
1463
|
+
BodyRegister:
|
|
1464
|
+
type: object
|
|
1465
|
+
description: |
|
|
1466
|
+
Authoritative register of Bodies (committees, subcommittees,
|
|
1467
|
+
working groups).
|
|
1468
|
+
additionalProperties: false
|
|
1469
|
+
properties:
|
|
1470
|
+
scope:
|
|
1471
|
+
type: string
|
|
1472
|
+
title:
|
|
1473
|
+
type: array
|
|
1474
|
+
items:
|
|
1475
|
+
"$ref": "#/$defs/LocalizedString"
|
|
1476
|
+
bodies:
|
|
1477
|
+
type: array
|
|
1478
|
+
items:
|
|
1479
|
+
"$ref": "#/$defs/Body"
|
|
1480
|
+
extensions:
|
|
1481
|
+
type: array
|
|
1482
|
+
items:
|
|
1483
|
+
"$ref": "#/$defs/MeetingExtension"
|