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