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/edoxen.yaml
CHANGED
|
@@ -1,237 +1,260 @@
|
|
|
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/decision-collection.yaml
|
|
4
|
+
title: Edoxen Decision Collection Schema
|
|
5
5
|
description: |
|
|
6
|
-
Schema for validating Edoxen
|
|
6
|
+
Schema for validating Edoxen decision-side YAML files.
|
|
7
|
+
|
|
8
|
+
Accepts three top-level document kinds via `oneOf`:
|
|
9
|
+
|
|
10
|
+
* `DecisionCollection` — the formal outcomes adopted by a Meeting.
|
|
11
|
+
* `ContactCollection` — a scoped-URN registry of Contacts.
|
|
12
|
+
* `VenueCollection` — a scoped-URN registry of Venues.
|
|
7
13
|
|
|
8
14
|
Mirrors the canonical LutaML information model in
|
|
9
15
|
https://github.com/edoxen/edoxen-model/tree/main/models .
|
|
10
16
|
|
|
11
|
-
The enum constants declared under `$defs`
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
asserts each one is character-for-character identical to the
|
|
16
|
-
corresponding `Edoxen::Enums::*` frozen array.
|
|
17
|
+
The enum constants declared under `$defs` are the authoritative wire
|
|
18
|
+
values. `spec/edoxen/schema_enum_sync_spec.rb` asserts each one is
|
|
19
|
+
character-for-character identical to the corresponding `Edoxen::Enums::*`
|
|
20
|
+
frozen array.
|
|
17
21
|
|
|
18
22
|
Trade-off: json_schemer's `valid_values` is not populated when an
|
|
19
23
|
`enum` is reached via `$ref`, so the validator's enum-violation
|
|
20
24
|
message degrades to "value ... is not one of: (see schema)". This
|
|
21
25
|
is documented in `Edoxen::SchemaValidator#format_message`.
|
|
22
26
|
type: object
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
type:
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
$defs
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
27
|
+
oneOf:
|
|
28
|
+
- "$ref": "#/$defs/DecisionCollection"
|
|
29
|
+
- "$ref": "#/$defs/ContactCollection"
|
|
30
|
+
- "$ref": "#/$defs/VenueCollection"
|
|
31
|
+
"$defs":
|
|
32
|
+
DecisionCollection:
|
|
33
|
+
type: object
|
|
34
|
+
description: |
|
|
35
|
+
Top-level container for a published decision collection: metadata
|
|
36
|
+
plus the list of decisions.
|
|
37
|
+
additionalProperties: false
|
|
38
|
+
properties:
|
|
39
|
+
metadata:
|
|
40
|
+
"$ref": "#/$defs/DecisionMetadata"
|
|
41
|
+
decisions:
|
|
42
|
+
type: array
|
|
43
|
+
items:
|
|
44
|
+
"$ref": "#/$defs/Decision"
|
|
45
|
+
required:
|
|
46
|
+
- decisions
|
|
42
47
|
StructuredIdentifier:
|
|
43
48
|
type: object
|
|
44
|
-
description:
|
|
49
|
+
description: An identifier (prefix + number). A Decision carries 1..* of these.
|
|
45
50
|
additionalProperties: false
|
|
46
|
-
required:
|
|
51
|
+
required:
|
|
52
|
+
- prefix
|
|
53
|
+
- number
|
|
47
54
|
properties:
|
|
48
55
|
prefix:
|
|
49
56
|
type: string
|
|
50
|
-
description: "Authority prefix, e.g. 'ISO', 'OIML', 'CIML'."
|
|
51
57
|
number:
|
|
52
58
|
type: string
|
|
53
|
-
|
|
54
|
-
|
|
59
|
+
EntityRef:
|
|
60
|
+
type: object
|
|
61
|
+
description: |
|
|
62
|
+
Typed cross-reference between entities (1.0, TODO.refactor/1.0-design).
|
|
63
|
+
Exactly one of `urn`, `identifier`, or `local_ref` should be set;
|
|
64
|
+
the gem's `EntityRef#valid?` enforces this in Ruby.
|
|
65
|
+
additionalProperties: false
|
|
66
|
+
properties:
|
|
67
|
+
urn:
|
|
68
|
+
type: string
|
|
69
|
+
identifier:
|
|
70
|
+
"$ref": "#/$defs/StructuredIdentifier"
|
|
71
|
+
local_ref:
|
|
72
|
+
type: string
|
|
73
|
+
kind:
|
|
74
|
+
type: string
|
|
75
|
+
role:
|
|
76
|
+
type: string
|
|
77
|
+
note:
|
|
78
|
+
type: string
|
|
55
79
|
MeetingIdentifier:
|
|
56
80
|
type: object
|
|
57
|
-
description:
|
|
81
|
+
description: Identifies the meeting a Decision belongs to.
|
|
58
82
|
additionalProperties: false
|
|
59
83
|
properties:
|
|
60
84
|
venue:
|
|
61
85
|
type: string
|
|
62
|
-
description: "Meeting venue name (free text)."
|
|
63
86
|
date:
|
|
64
87
|
type: string
|
|
65
88
|
format: date
|
|
66
|
-
description: "Meeting date."
|
|
67
|
-
|
|
68
89
|
Url:
|
|
69
90
|
type: object
|
|
70
|
-
description:
|
|
91
|
+
description: URL with a kind (access / report) and an optional format hint.
|
|
71
92
|
additionalProperties: false
|
|
72
|
-
required:
|
|
93
|
+
required:
|
|
94
|
+
- kind
|
|
95
|
+
- ref
|
|
73
96
|
properties:
|
|
74
97
|
kind:
|
|
75
|
-
$ref: "#/$defs/UrlKind"
|
|
98
|
+
"$ref": "#/$defs/UrlKind"
|
|
76
99
|
ref:
|
|
77
100
|
type: string
|
|
78
101
|
format:
|
|
79
102
|
type: string
|
|
80
|
-
|
|
81
|
-
ResolutionRelation:
|
|
103
|
+
DecisionRelation:
|
|
82
104
|
type: object
|
|
83
|
-
description:
|
|
105
|
+
description: Directed relation between two decisions identified by their StructuredIdentifier.
|
|
84
106
|
additionalProperties: false
|
|
85
|
-
required:
|
|
107
|
+
required:
|
|
108
|
+
- source
|
|
109
|
+
- destination
|
|
110
|
+
- type
|
|
86
111
|
properties:
|
|
87
112
|
source:
|
|
88
|
-
$ref: "#/$defs/StructuredIdentifier"
|
|
113
|
+
"$ref": "#/$defs/StructuredIdentifier"
|
|
89
114
|
destination:
|
|
90
|
-
$ref: "#/$defs/StructuredIdentifier"
|
|
115
|
+
"$ref": "#/$defs/StructuredIdentifier"
|
|
91
116
|
type:
|
|
92
|
-
$ref: "#/$defs/
|
|
93
|
-
|
|
94
|
-
# ====================================================================
|
|
95
|
-
# Date carriers.
|
|
96
|
-
# ====================================================================
|
|
97
|
-
|
|
98
|
-
ResolutionDate:
|
|
117
|
+
"$ref": "#/$defs/DecisionRelationType"
|
|
118
|
+
DecisionDate:
|
|
99
119
|
type: object
|
|
100
|
-
description:
|
|
120
|
+
description: Date with semantic kind (adoption / drafted / discussed).
|
|
101
121
|
additionalProperties: false
|
|
102
|
-
required:
|
|
122
|
+
required:
|
|
123
|
+
- date
|
|
124
|
+
- type
|
|
103
125
|
properties:
|
|
104
126
|
date:
|
|
105
127
|
type: string
|
|
106
128
|
format: date
|
|
107
|
-
description: "The date itself."
|
|
108
129
|
type:
|
|
109
|
-
$ref: "#/$defs/
|
|
110
|
-
|
|
111
|
-
# ====================================================================
|
|
112
|
-
# Per-localization sub-structures. Each is owned by exactly one
|
|
113
|
-
# Language; the language_code discriminator lives on Localization.
|
|
114
|
-
# ====================================================================
|
|
115
|
-
|
|
130
|
+
"$ref": "#/$defs/DecisionDateType"
|
|
116
131
|
Action:
|
|
117
132
|
type: object
|
|
118
|
-
description:
|
|
133
|
+
description: A verb + one effective date + human-readable message.
|
|
119
134
|
additionalProperties: false
|
|
120
|
-
required:
|
|
135
|
+
required:
|
|
136
|
+
- type
|
|
137
|
+
- message
|
|
138
|
+
- date_effective
|
|
121
139
|
properties:
|
|
122
140
|
type:
|
|
123
|
-
$ref: "#/$defs/ActionType"
|
|
141
|
+
"$ref": "#/$defs/ActionType"
|
|
124
142
|
date_effective:
|
|
125
|
-
$ref: "#/$defs/
|
|
143
|
+
"$ref": "#/$defs/DecisionDate"
|
|
126
144
|
message:
|
|
127
|
-
type:
|
|
128
|
-
|
|
145
|
+
type: array
|
|
146
|
+
items:
|
|
147
|
+
"$ref": "#/$defs/LocalizedString"
|
|
129
148
|
Approval:
|
|
130
149
|
type: object
|
|
131
|
-
description:
|
|
150
|
+
description: 'Approval record: vote type, consensus degree, date, message.'
|
|
132
151
|
additionalProperties: false
|
|
133
|
-
required:
|
|
152
|
+
required:
|
|
153
|
+
- type
|
|
154
|
+
- degree
|
|
155
|
+
- date
|
|
134
156
|
properties:
|
|
135
157
|
type:
|
|
136
|
-
$ref: "#/$defs/ApprovalType"
|
|
158
|
+
"$ref": "#/$defs/ApprovalType"
|
|
137
159
|
degree:
|
|
138
|
-
$ref: "#/$defs/ApprovalDegree"
|
|
160
|
+
"$ref": "#/$defs/ApprovalDegree"
|
|
139
161
|
date:
|
|
140
|
-
$ref: "#/$defs/
|
|
162
|
+
"$ref": "#/$defs/DecisionDate"
|
|
141
163
|
message:
|
|
142
|
-
type:
|
|
143
|
-
|
|
164
|
+
type: array
|
|
165
|
+
items:
|
|
166
|
+
"$ref": "#/$defs/LocalizedString"
|
|
144
167
|
Consideration:
|
|
145
168
|
type: object
|
|
146
|
-
description:
|
|
169
|
+
description: 'The basis for a Decision: a verb + one effective date + reasoning.'
|
|
147
170
|
additionalProperties: false
|
|
148
|
-
required:
|
|
171
|
+
required:
|
|
172
|
+
- type
|
|
173
|
+
- message
|
|
174
|
+
- date_effective
|
|
149
175
|
properties:
|
|
150
176
|
type:
|
|
151
|
-
$ref: "#/$defs/ConsiderationType"
|
|
177
|
+
"$ref": "#/$defs/ConsiderationType"
|
|
152
178
|
date_effective:
|
|
153
|
-
$ref: "#/$defs/
|
|
179
|
+
"$ref": "#/$defs/DecisionDate"
|
|
154
180
|
message:
|
|
155
|
-
type:
|
|
156
|
-
|
|
157
|
-
|
|
181
|
+
type: array
|
|
182
|
+
items:
|
|
183
|
+
"$ref": "#/$defs/LocalizedString"
|
|
184
|
+
LocalizedString:
|
|
158
185
|
type: object
|
|
159
186
|
description: |
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
187
|
+
One language-specific value of a translatable String field.
|
|
188
|
+
`spelling` is an ISO 24229 spelling/conversion system code.
|
|
189
|
+
Always verbose — single-language data uses the same
|
|
190
|
+
`[{ spelling, value }]` shape as multi-language data.
|
|
163
191
|
additionalProperties: false
|
|
164
|
-
required:
|
|
192
|
+
required:
|
|
193
|
+
- spelling
|
|
194
|
+
- value
|
|
165
195
|
properties:
|
|
166
|
-
|
|
167
|
-
type: string
|
|
168
|
-
pattern: "^[a-z]{3}$"
|
|
169
|
-
description: "ISO 639-3 three-letter language code (eng, fra, deu, spa, jpn, ...)."
|
|
170
|
-
script:
|
|
171
|
-
type: string
|
|
172
|
-
pattern: "^[A-Z][a-z]{3}$"
|
|
173
|
-
description: "ISO 15924 four-letter script code (Latn, Cyrl, Hant, Arab)."
|
|
174
|
-
title:
|
|
175
|
-
type: string
|
|
176
|
-
subject:
|
|
177
|
-
type: string
|
|
178
|
-
message:
|
|
196
|
+
spelling:
|
|
179
197
|
type: string
|
|
180
|
-
|
|
198
|
+
value:
|
|
181
199
|
type: string
|
|
182
|
-
|
|
183
|
-
type: array
|
|
184
|
-
items:
|
|
185
|
-
$ref: "#/$defs/Consideration"
|
|
186
|
-
approvals:
|
|
200
|
+
extensions:
|
|
187
201
|
type: array
|
|
188
202
|
items:
|
|
189
|
-
$ref: "#/$defs/
|
|
190
|
-
|
|
203
|
+
"$ref": "#/$defs/MeetingExtension"
|
|
204
|
+
LocalizedName:
|
|
205
|
+
type: object
|
|
206
|
+
description: |
|
|
207
|
+
One language-specific value of a translatable Name field.
|
|
208
|
+
Mirrors LocalizedString but carries a structured Name.
|
|
209
|
+
additionalProperties: false
|
|
210
|
+
required:
|
|
211
|
+
- spelling
|
|
212
|
+
- value
|
|
213
|
+
properties:
|
|
214
|
+
spelling:
|
|
215
|
+
type: string
|
|
216
|
+
value:
|
|
217
|
+
"$ref": "#/$defs/Name"
|
|
218
|
+
extensions:
|
|
191
219
|
type: array
|
|
192
220
|
items:
|
|
193
|
-
$ref: "#/$defs/
|
|
194
|
-
|
|
221
|
+
"$ref": "#/$defs/MeetingExtension"
|
|
195
222
|
SourceUrl:
|
|
196
223
|
type: object
|
|
197
|
-
description:
|
|
224
|
+
description: Per-spelling canonical source URL (e.g. one PDF per language).
|
|
198
225
|
additionalProperties: false
|
|
199
|
-
required:
|
|
226
|
+
required:
|
|
227
|
+
- ref
|
|
200
228
|
properties:
|
|
201
229
|
ref:
|
|
202
230
|
type: string
|
|
203
|
-
description: "The URL string."
|
|
204
231
|
format:
|
|
205
232
|
type: string
|
|
206
|
-
|
|
207
|
-
language_code:
|
|
233
|
+
spelling:
|
|
208
234
|
type: string
|
|
209
|
-
|
|
235
|
+
description: ISO 24229 spelling/conversion system code
|
|
210
236
|
kind:
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
enum: [agenda_pdf, minutes_pdf, resolutions_pdf, report_pdf, register_url, landing_page]
|
|
214
|
-
|
|
215
|
-
# ====================================================================
|
|
216
|
-
# Top-level structures.
|
|
217
|
-
# ====================================================================
|
|
218
|
-
|
|
219
|
-
Resolution:
|
|
237
|
+
"$ref": "#/$defs/SourceUrlKind"
|
|
238
|
+
Decision:
|
|
220
239
|
type: object
|
|
221
240
|
description: |
|
|
222
|
-
A formal
|
|
223
|
-
|
|
224
|
-
(one entry per available language; at least one is required).
|
|
241
|
+
A formal Decision. 1.0: per-field Localized (every translatable
|
|
242
|
+
field carries its own spelling tag). Removed `localizations[]`.
|
|
225
243
|
additionalProperties: false
|
|
226
|
-
required:
|
|
244
|
+
required:
|
|
245
|
+
- identifier
|
|
227
246
|
properties:
|
|
228
247
|
identifier:
|
|
229
248
|
type: array
|
|
230
249
|
minItems: 1
|
|
231
250
|
items:
|
|
232
|
-
$ref: "#/$defs/StructuredIdentifier"
|
|
233
|
-
|
|
234
|
-
$ref: "#/$defs/
|
|
251
|
+
"$ref": "#/$defs/StructuredIdentifier"
|
|
252
|
+
kind:
|
|
253
|
+
"$ref": "#/$defs/DecisionKind"
|
|
254
|
+
status:
|
|
255
|
+
"$ref": "#/$defs/DecisionStatus"
|
|
256
|
+
body_type:
|
|
257
|
+
type: string
|
|
235
258
|
doi:
|
|
236
259
|
type: string
|
|
237
260
|
urn:
|
|
@@ -241,150 +264,1257 @@ $defs:
|
|
|
241
264
|
dates:
|
|
242
265
|
type: array
|
|
243
266
|
items:
|
|
244
|
-
$ref: "#/$defs/
|
|
267
|
+
"$ref": "#/$defs/DecisionDate"
|
|
245
268
|
categories:
|
|
246
269
|
type: array
|
|
247
270
|
items:
|
|
248
271
|
type: string
|
|
249
272
|
meeting:
|
|
250
|
-
$ref: "#/$defs/MeetingIdentifier"
|
|
273
|
+
"$ref": "#/$defs/MeetingIdentifier"
|
|
251
274
|
relations:
|
|
252
275
|
type: array
|
|
253
276
|
items:
|
|
254
|
-
$ref: "#/$defs/
|
|
277
|
+
"$ref": "#/$defs/DecisionRelation"
|
|
255
278
|
urls:
|
|
256
279
|
type: array
|
|
257
280
|
items:
|
|
258
|
-
$ref: "#/$defs/Url"
|
|
259
|
-
|
|
281
|
+
"$ref": "#/$defs/Url"
|
|
282
|
+
brought_by_motions:
|
|
260
283
|
type: array
|
|
261
|
-
minItems: 1
|
|
262
284
|
items:
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
285
|
+
type: string
|
|
286
|
+
about_topics:
|
|
287
|
+
type: array
|
|
288
|
+
items:
|
|
289
|
+
type: string
|
|
290
|
+
made_in_component:
|
|
291
|
+
type: string
|
|
292
|
+
title:
|
|
293
|
+
type: array
|
|
294
|
+
items:
|
|
295
|
+
"$ref": "#/$defs/LocalizedString"
|
|
296
|
+
subject:
|
|
297
|
+
type: array
|
|
298
|
+
items:
|
|
299
|
+
"$ref": "#/$defs/LocalizedString"
|
|
300
|
+
message:
|
|
301
|
+
type: array
|
|
302
|
+
items:
|
|
303
|
+
"$ref": "#/$defs/LocalizedString"
|
|
304
|
+
considering:
|
|
305
|
+
type: array
|
|
306
|
+
items:
|
|
307
|
+
"$ref": "#/$defs/LocalizedString"
|
|
308
|
+
considerations:
|
|
309
|
+
type: array
|
|
310
|
+
items:
|
|
311
|
+
"$ref": "#/$defs/Consideration"
|
|
312
|
+
approvals:
|
|
313
|
+
type: array
|
|
314
|
+
items:
|
|
315
|
+
"$ref": "#/$defs/Approval"
|
|
316
|
+
actions:
|
|
317
|
+
type: array
|
|
318
|
+
items:
|
|
319
|
+
"$ref": "#/$defs/Action"
|
|
320
|
+
extensions:
|
|
321
|
+
type: array
|
|
322
|
+
items:
|
|
323
|
+
"$ref": "#/$defs/MeetingExtension"
|
|
324
|
+
DecisionMetadata:
|
|
266
325
|
type: object
|
|
267
|
-
description:
|
|
326
|
+
description: Collection-level metadata (localized title, meeting date, source, source URLs, host venue).
|
|
268
327
|
additionalProperties: false
|
|
269
328
|
properties:
|
|
270
329
|
title:
|
|
271
|
-
type: string
|
|
272
|
-
description: "Default title (no language). For multilingual, use `title_localized[]`."
|
|
273
|
-
title_localized:
|
|
274
330
|
type: array
|
|
275
331
|
items:
|
|
276
|
-
$ref: "#/$defs/
|
|
277
|
-
description: "Per-language title records (parallel pattern to Resolution#localizations)."
|
|
332
|
+
"$ref": "#/$defs/LocalizedString"
|
|
278
333
|
date:
|
|
279
334
|
type: string
|
|
280
335
|
format: date
|
|
281
|
-
description: "Meeting date."
|
|
282
336
|
source:
|
|
283
337
|
type: string
|
|
284
|
-
description: "Source organization / secretariat that issued the collection."
|
|
285
338
|
source_urls:
|
|
286
339
|
type: array
|
|
287
340
|
items:
|
|
288
|
-
$ref: "#/$defs/SourceUrl"
|
|
289
|
-
description: "Canonical URLs to the source PDFs in each available language."
|
|
341
|
+
"$ref": "#/$defs/SourceUrl"
|
|
290
342
|
city:
|
|
291
343
|
type: string
|
|
292
344
|
pattern: "^[A-Z]{2}[A-Z0-9]{3}$"
|
|
293
|
-
description: "UN/LOCODE of the host city (5-char: 2-letter ISO 3166-1 country + 3-char location, e.g. FRPAR, CNSHA, HKHKG). Supersedes the IATA city code."
|
|
294
345
|
country_code:
|
|
295
346
|
type: string
|
|
296
|
-
|
|
347
|
+
pattern: "^[A-Z]{2}$"
|
|
297
348
|
meeting_urn:
|
|
298
349
|
type: string
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
type:
|
|
309
|
-
description:
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
type:
|
|
374
|
-
description:
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
350
|
+
body_vocabulary:
|
|
351
|
+
type: array
|
|
352
|
+
items:
|
|
353
|
+
"$ref": "#/$defs/BodyVocabularyEntry"
|
|
354
|
+
extensions:
|
|
355
|
+
type: array
|
|
356
|
+
items:
|
|
357
|
+
"$ref": "#/$defs/MeetingExtension"
|
|
358
|
+
BodyVocabularyEntry:
|
|
359
|
+
type: object
|
|
360
|
+
description: |
|
|
361
|
+
One entry in a per-dataset body_vocabulary list. Maps a free-form
|
|
362
|
+
body_type to a short canonical value. SSOT for body_type ->
|
|
363
|
+
canonical_type resolution within the declaring collection.
|
|
364
|
+
additionalProperties: false
|
|
365
|
+
properties:
|
|
366
|
+
body_type:
|
|
367
|
+
type: string
|
|
368
|
+
canonical_type:
|
|
369
|
+
type: string
|
|
370
|
+
definition:
|
|
371
|
+
type: string
|
|
372
|
+
Motion:
|
|
373
|
+
type: object
|
|
374
|
+
description: A procedural act that brings a Decision.
|
|
375
|
+
additionalProperties: false
|
|
376
|
+
properties:
|
|
377
|
+
identifier:
|
|
378
|
+
type: string
|
|
379
|
+
urn:
|
|
380
|
+
type: string
|
|
381
|
+
text:
|
|
382
|
+
type: array
|
|
383
|
+
items:
|
|
384
|
+
"$ref": "#/$defs/LocalizedString"
|
|
385
|
+
mover:
|
|
386
|
+
"$ref": "#/$defs/Person"
|
|
387
|
+
seconders:
|
|
388
|
+
type: array
|
|
389
|
+
items:
|
|
390
|
+
"$ref": "#/$defs/Person"
|
|
391
|
+
status:
|
|
392
|
+
"$ref": "#/$defs/MotionStatus"
|
|
393
|
+
introduced_at:
|
|
394
|
+
type: string
|
|
395
|
+
format: date-time
|
|
396
|
+
proposed_decision:
|
|
397
|
+
type: string
|
|
398
|
+
resulting_decision:
|
|
399
|
+
type: string
|
|
400
|
+
resulting_decision_ref:
|
|
401
|
+
"$ref": "#/$defs/EntityRef"
|
|
402
|
+
votings:
|
|
403
|
+
type: array
|
|
404
|
+
items:
|
|
405
|
+
type: string
|
|
406
|
+
extensions:
|
|
407
|
+
type: array
|
|
408
|
+
items:
|
|
409
|
+
"$ref": "#/$defs/MeetingExtension"
|
|
410
|
+
VotingCounts:
|
|
411
|
+
type: object
|
|
412
|
+
description: Tally for a Voting instance.
|
|
413
|
+
additionalProperties: false
|
|
414
|
+
properties:
|
|
415
|
+
ayes:
|
|
416
|
+
type: integer
|
|
417
|
+
noes:
|
|
418
|
+
type: integer
|
|
419
|
+
abstentions:
|
|
420
|
+
type: integer
|
|
421
|
+
absent:
|
|
422
|
+
type: integer
|
|
423
|
+
Voting:
|
|
424
|
+
type: object
|
|
425
|
+
description: State machine for a single vote on a Motion.
|
|
426
|
+
additionalProperties: false
|
|
427
|
+
properties:
|
|
428
|
+
identifier:
|
|
429
|
+
type: string
|
|
430
|
+
urn:
|
|
431
|
+
type: string
|
|
432
|
+
on_motion:
|
|
433
|
+
type: string
|
|
434
|
+
status:
|
|
435
|
+
"$ref": "#/$defs/VotingStatus"
|
|
436
|
+
voting_method:
|
|
437
|
+
"$ref": "#/$defs/VotingMethod"
|
|
438
|
+
called_by:
|
|
439
|
+
"$ref": "#/$defs/Person"
|
|
440
|
+
called_at:
|
|
441
|
+
type: string
|
|
442
|
+
format: date-time
|
|
443
|
+
result_declared_at:
|
|
444
|
+
type: string
|
|
445
|
+
format: date-time
|
|
446
|
+
result:
|
|
447
|
+
"$ref": "#/$defs/VotingOutcome"
|
|
448
|
+
counts:
|
|
449
|
+
"$ref": "#/$defs/VotingCounts"
|
|
450
|
+
casting_vote:
|
|
451
|
+
"$ref": "#/$defs/VoteRecord"
|
|
452
|
+
vote_records:
|
|
453
|
+
type: array
|
|
454
|
+
items:
|
|
455
|
+
"$ref": "#/$defs/VoteRecord"
|
|
456
|
+
extensions:
|
|
457
|
+
type: array
|
|
458
|
+
items:
|
|
459
|
+
"$ref": "#/$defs/MeetingExtension"
|
|
460
|
+
TopicDocument:
|
|
461
|
+
type: object
|
|
462
|
+
description: 'Text-bearing document about a Topic. 1.0: per-field Localized.'
|
|
463
|
+
additionalProperties: false
|
|
464
|
+
properties:
|
|
465
|
+
identifier:
|
|
466
|
+
type: string
|
|
467
|
+
title:
|
|
468
|
+
type: array
|
|
469
|
+
items:
|
|
470
|
+
"$ref": "#/$defs/LocalizedString"
|
|
471
|
+
version:
|
|
472
|
+
type: string
|
|
473
|
+
status:
|
|
474
|
+
type: string
|
|
475
|
+
url:
|
|
476
|
+
type: string
|
|
477
|
+
format:
|
|
478
|
+
type: string
|
|
479
|
+
spelling:
|
|
480
|
+
type: string
|
|
481
|
+
description: ISO 24229 spelling/conversion system code
|
|
482
|
+
extensions:
|
|
483
|
+
type: array
|
|
484
|
+
items:
|
|
485
|
+
"$ref": "#/$defs/MeetingExtension"
|
|
486
|
+
TopicAsset:
|
|
487
|
+
type: object
|
|
488
|
+
description: 'Non-text resource about a Topic. 1.0: per-field Localized.'
|
|
489
|
+
additionalProperties: false
|
|
490
|
+
properties:
|
|
491
|
+
identifier:
|
|
492
|
+
type: string
|
|
493
|
+
title:
|
|
494
|
+
type: array
|
|
495
|
+
items:
|
|
496
|
+
"$ref": "#/$defs/LocalizedString"
|
|
497
|
+
kind:
|
|
498
|
+
type: string
|
|
499
|
+
url:
|
|
500
|
+
type: string
|
|
501
|
+
format:
|
|
502
|
+
type: string
|
|
503
|
+
extensions:
|
|
504
|
+
type: array
|
|
505
|
+
items:
|
|
506
|
+
"$ref": "#/$defs/MeetingExtension"
|
|
507
|
+
Topic:
|
|
508
|
+
type: object
|
|
509
|
+
description: 'The subject of discussion at a Meeting. 1.0: per-field Localized.'
|
|
510
|
+
additionalProperties: false
|
|
511
|
+
properties:
|
|
512
|
+
identifier:
|
|
513
|
+
type: string
|
|
514
|
+
urn:
|
|
515
|
+
type: string
|
|
516
|
+
title:
|
|
517
|
+
type: array
|
|
518
|
+
items:
|
|
519
|
+
"$ref": "#/$defs/LocalizedString"
|
|
520
|
+
description:
|
|
521
|
+
type: array
|
|
522
|
+
items:
|
|
523
|
+
"$ref": "#/$defs/LocalizedString"
|
|
524
|
+
status:
|
|
525
|
+
"$ref": "#/$defs/TopicStatus"
|
|
526
|
+
resumption_of:
|
|
527
|
+
type: string
|
|
528
|
+
documents:
|
|
529
|
+
type: array
|
|
530
|
+
items:
|
|
531
|
+
"$ref": "#/$defs/TopicDocument"
|
|
532
|
+
assets:
|
|
533
|
+
type: array
|
|
534
|
+
items:
|
|
535
|
+
"$ref": "#/$defs/TopicAsset"
|
|
536
|
+
references:
|
|
537
|
+
type: array
|
|
538
|
+
items:
|
|
539
|
+
"$ref": "#/$defs/Reference"
|
|
540
|
+
motions:
|
|
541
|
+
type: array
|
|
542
|
+
items:
|
|
543
|
+
type: string
|
|
544
|
+
decisions:
|
|
545
|
+
type: array
|
|
546
|
+
items:
|
|
547
|
+
type: string
|
|
548
|
+
statements:
|
|
549
|
+
type: array
|
|
550
|
+
items:
|
|
551
|
+
"$ref": "#/$defs/Statement"
|
|
552
|
+
declarations:
|
|
553
|
+
type: array
|
|
554
|
+
items:
|
|
555
|
+
"$ref": "#/$defs/Declaration"
|
|
556
|
+
extensions:
|
|
557
|
+
type: array
|
|
558
|
+
items:
|
|
559
|
+
"$ref": "#/$defs/MeetingExtension"
|
|
560
|
+
Venue:
|
|
561
|
+
type: object
|
|
562
|
+
description: |
|
|
563
|
+
Polymorphic place where a Meeting happens. `kind` discriminates
|
|
564
|
+
physical vs virtual; all fields from both subtypes live here as
|
|
565
|
+
optional siblings. 1.0: per-field Localized (name, label,
|
|
566
|
+
description, address, building, floor, room, access_notes).
|
|
567
|
+
Added `urn` (registry identity) and `ref` (reference-by-URN).
|
|
568
|
+
additionalProperties: false
|
|
569
|
+
properties:
|
|
570
|
+
ref:
|
|
571
|
+
type: string
|
|
572
|
+
description: URN reference; if set, ignore other fields
|
|
573
|
+
urn:
|
|
574
|
+
type: string
|
|
575
|
+
pattern: "^urn:edoxen:venue:[^:]+:[^:]+$"
|
|
576
|
+
kind:
|
|
577
|
+
"$ref": "#/$defs/VenueKind"
|
|
578
|
+
name:
|
|
579
|
+
type: array
|
|
580
|
+
items:
|
|
581
|
+
"$ref": "#/$defs/LocalizedString"
|
|
582
|
+
label:
|
|
583
|
+
type: array
|
|
584
|
+
items:
|
|
585
|
+
"$ref": "#/$defs/LocalizedString"
|
|
586
|
+
description:
|
|
587
|
+
type: array
|
|
588
|
+
items:
|
|
589
|
+
"$ref": "#/$defs/LocalizedString"
|
|
590
|
+
capacity:
|
|
591
|
+
type: integer
|
|
592
|
+
url:
|
|
593
|
+
type: string
|
|
594
|
+
contact_methods:
|
|
595
|
+
type: array
|
|
596
|
+
items:
|
|
597
|
+
"$ref": "#/$defs/ContactMethod"
|
|
598
|
+
unlocode:
|
|
599
|
+
type: string
|
|
600
|
+
pattern: "^[A-Z]{2}[A-Z0-9]{3}$"
|
|
601
|
+
iata_code:
|
|
602
|
+
type: string
|
|
603
|
+
pattern: "^[A-Z]{3}$"
|
|
604
|
+
address:
|
|
605
|
+
type: array
|
|
606
|
+
items:
|
|
607
|
+
"$ref": "#/$defs/LocalizedString"
|
|
608
|
+
city:
|
|
609
|
+
type: string
|
|
610
|
+
country_code:
|
|
611
|
+
type: string
|
|
612
|
+
pattern: "^[A-Z]{2}$"
|
|
613
|
+
lat:
|
|
614
|
+
type: number
|
|
615
|
+
lon:
|
|
616
|
+
type: number
|
|
617
|
+
building:
|
|
618
|
+
type: array
|
|
619
|
+
items:
|
|
620
|
+
"$ref": "#/$defs/LocalizedString"
|
|
621
|
+
floor:
|
|
622
|
+
type: array
|
|
623
|
+
items:
|
|
624
|
+
"$ref": "#/$defs/LocalizedString"
|
|
625
|
+
room:
|
|
626
|
+
type: array
|
|
627
|
+
items:
|
|
628
|
+
"$ref": "#/$defs/LocalizedString"
|
|
629
|
+
access_notes:
|
|
630
|
+
type: array
|
|
631
|
+
items:
|
|
632
|
+
"$ref": "#/$defs/LocalizedString"
|
|
633
|
+
uri:
|
|
634
|
+
type: string
|
|
635
|
+
features:
|
|
636
|
+
type: array
|
|
637
|
+
items:
|
|
638
|
+
"$ref": "#/$defs/VirtualFeature"
|
|
639
|
+
passcode:
|
|
640
|
+
type: string
|
|
641
|
+
meeting_id:
|
|
642
|
+
type: string
|
|
643
|
+
dial_in_numbers:
|
|
644
|
+
type: array
|
|
645
|
+
items:
|
|
646
|
+
type: string
|
|
647
|
+
waiting_room:
|
|
648
|
+
type: boolean
|
|
649
|
+
registration_required:
|
|
650
|
+
type: boolean
|
|
651
|
+
extensions:
|
|
652
|
+
type: array
|
|
653
|
+
items:
|
|
654
|
+
"$ref": "#/$defs/MeetingExtension"
|
|
655
|
+
PhysicalVenue:
|
|
656
|
+
description: Marker — Venue with kind=physical. Wire shape is identical to Venue.
|
|
657
|
+
allOf:
|
|
658
|
+
- "$ref": "#/$defs/Venue"
|
|
659
|
+
VirtualVenue:
|
|
660
|
+
description: Marker — Venue with kind=virtual. Wire shape is identical to Venue.
|
|
661
|
+
allOf:
|
|
662
|
+
- "$ref": "#/$defs/Venue"
|
|
663
|
+
RecurrenceByDay:
|
|
664
|
+
type: object
|
|
665
|
+
description: BYDAY part of a recurrence. `ordinal` is null for 'every', +1 for first, -1 for last.
|
|
666
|
+
additionalProperties: false
|
|
667
|
+
properties:
|
|
668
|
+
ordinal:
|
|
669
|
+
type: integer
|
|
670
|
+
weekday:
|
|
671
|
+
type: string
|
|
672
|
+
Recurrence:
|
|
673
|
+
type: object
|
|
674
|
+
description: Structured ISO 8601-2 §13 recurrence.
|
|
675
|
+
additionalProperties: false
|
|
676
|
+
properties:
|
|
677
|
+
freq:
|
|
678
|
+
"$ref": "#/$defs/RecurrenceFreq"
|
|
679
|
+
interval:
|
|
680
|
+
type: integer
|
|
681
|
+
count:
|
|
682
|
+
type: integer
|
|
683
|
+
until:
|
|
684
|
+
type: string
|
|
685
|
+
format: date-time
|
|
686
|
+
by_day:
|
|
687
|
+
type: array
|
|
688
|
+
items:
|
|
689
|
+
"$ref": "#/$defs/RecurrenceByDay"
|
|
690
|
+
by_month_day:
|
|
691
|
+
type: array
|
|
692
|
+
items:
|
|
693
|
+
type: integer
|
|
694
|
+
by_month:
|
|
695
|
+
type: array
|
|
696
|
+
items:
|
|
697
|
+
type: integer
|
|
698
|
+
by_week_no:
|
|
699
|
+
type: array
|
|
700
|
+
items:
|
|
701
|
+
type: integer
|
|
702
|
+
by_year_day:
|
|
703
|
+
type: array
|
|
704
|
+
items:
|
|
705
|
+
type: integer
|
|
706
|
+
by_hour:
|
|
707
|
+
type: array
|
|
708
|
+
items:
|
|
709
|
+
type: integer
|
|
710
|
+
by_minute:
|
|
711
|
+
type: array
|
|
712
|
+
items:
|
|
713
|
+
type: integer
|
|
714
|
+
by_second:
|
|
715
|
+
type: array
|
|
716
|
+
items:
|
|
717
|
+
type: integer
|
|
718
|
+
by_set_pos:
|
|
719
|
+
type: array
|
|
720
|
+
items:
|
|
721
|
+
type: integer
|
|
722
|
+
week_start:
|
|
723
|
+
type: string
|
|
724
|
+
extensions:
|
|
725
|
+
type: array
|
|
726
|
+
items:
|
|
727
|
+
"$ref": "#/$defs/MeetingExtension"
|
|
728
|
+
ExtensionAttribute:
|
|
729
|
+
type: object
|
|
730
|
+
description: |
|
|
731
|
+
One typed key/value pair within a MeetingExtension. Polymorphic on
|
|
732
|
+
value type so consumers don't re-parse strings back into Int/Float/
|
|
733
|
+
Bool/Date (1.0 tighten, TODO.refactor/1.0-design).
|
|
734
|
+
additionalProperties: false
|
|
735
|
+
properties:
|
|
736
|
+
key:
|
|
737
|
+
type: string
|
|
738
|
+
type:
|
|
739
|
+
type: string
|
|
740
|
+
enum:
|
|
741
|
+
- string
|
|
742
|
+
- integer
|
|
743
|
+
- float
|
|
744
|
+
- boolean
|
|
745
|
+
- date
|
|
746
|
+
- datetime
|
|
747
|
+
value:
|
|
748
|
+
type: string
|
|
749
|
+
intValue:
|
|
750
|
+
type: integer
|
|
751
|
+
floatValue:
|
|
752
|
+
type: number
|
|
753
|
+
booleanValue:
|
|
754
|
+
type: boolean
|
|
755
|
+
dateValue:
|
|
756
|
+
type: string
|
|
757
|
+
format: date
|
|
758
|
+
dateTimeValue:
|
|
759
|
+
type: string
|
|
760
|
+
format: date-time
|
|
761
|
+
MeetingExtension:
|
|
762
|
+
type: object
|
|
763
|
+
description: |
|
|
764
|
+
Profile-specific extension. Adopters register their namespace via
|
|
765
|
+
`profile` and discriminate via `kind`. Field semantics tightened
|
|
766
|
+
1.0 (TODO.refactor/1.0-design): `kind` is the in-profile discriminator,
|
|
767
|
+
`ref` is the URN of an external profile document, and the
|
|
768
|
+
recursive `extensions[]` slot was removed (YAGNI — use dotted
|
|
769
|
+
keys in `attributes[]` for nesting).
|
|
770
|
+
additionalProperties: false
|
|
771
|
+
properties:
|
|
772
|
+
profile:
|
|
773
|
+
type: string
|
|
774
|
+
kind:
|
|
775
|
+
type: string
|
|
776
|
+
ref:
|
|
777
|
+
type: string
|
|
778
|
+
attributes:
|
|
779
|
+
type: array
|
|
780
|
+
items:
|
|
781
|
+
"$ref": "#/$defs/ExtensionAttribute"
|
|
782
|
+
ContactMethodKind:
|
|
783
|
+
type: string
|
|
784
|
+
description: Polymorphic communication channel kind.
|
|
785
|
+
enum:
|
|
786
|
+
- phone
|
|
787
|
+
- mobile
|
|
788
|
+
- fax
|
|
789
|
+
- email
|
|
790
|
+
- url
|
|
791
|
+
- mail
|
|
792
|
+
- pager
|
|
793
|
+
- message
|
|
794
|
+
- other
|
|
795
|
+
ContactMethod:
|
|
796
|
+
type: object
|
|
797
|
+
description: |
|
|
798
|
+
One polymorphic communication channel — phone, email, fax, url,
|
|
799
|
+
mail, etc. `kind` discriminates the channel; `value` carries the
|
|
800
|
+
address/number; `label` is a free-form display hint ("Office",
|
|
801
|
+
"Front desk"). OCP: new channel kinds are added via the
|
|
802
|
+
ContactMethodKind enum (or `other` + extensions).
|
|
803
|
+
additionalProperties: false
|
|
804
|
+
properties:
|
|
805
|
+
kind:
|
|
806
|
+
"$ref": "#/$defs/ContactMethodKind"
|
|
807
|
+
value:
|
|
808
|
+
type: string
|
|
809
|
+
label:
|
|
810
|
+
type: string
|
|
811
|
+
primary:
|
|
812
|
+
type: boolean
|
|
813
|
+
extensions:
|
|
814
|
+
type: array
|
|
815
|
+
items:
|
|
816
|
+
"$ref": "#/$defs/MeetingExtension"
|
|
817
|
+
ContactIdentifierKind:
|
|
818
|
+
type: string
|
|
819
|
+
description: Polymorphic external identifier scheme for a Contact.
|
|
820
|
+
enum:
|
|
821
|
+
- orcid
|
|
822
|
+
- isni
|
|
823
|
+
- wikidata
|
|
824
|
+
- ror
|
|
825
|
+
- ringgold
|
|
826
|
+
- github
|
|
827
|
+
- other
|
|
828
|
+
ContactIdentifier:
|
|
829
|
+
type: object
|
|
830
|
+
description: |
|
|
831
|
+
One polymorphic external identifier — ORCID, ISNI, Wikidata QID,
|
|
832
|
+
ROR, Ringgold, GitHub handle, etc. Replaces the hard-coded `orcid`
|
|
833
|
+
field. OCP: new identifier schemes are added via the
|
|
834
|
+
ContactIdentifierKind enum (or `other` + extensions).
|
|
835
|
+
additionalProperties: false
|
|
836
|
+
properties:
|
|
837
|
+
kind:
|
|
838
|
+
"$ref": "#/$defs/ContactIdentifierKind"
|
|
839
|
+
value:
|
|
840
|
+
type: string
|
|
841
|
+
extensions:
|
|
842
|
+
type: array
|
|
843
|
+
items:
|
|
844
|
+
"$ref": "#/$defs/MeetingExtension"
|
|
845
|
+
Name:
|
|
846
|
+
type: object
|
|
847
|
+
description: |
|
|
848
|
+
Structured personal/organisational name (VCARD RFC 6350
|
|
849
|
+
conventions). `formatted` is the pre-built display string (FN);
|
|
850
|
+
the structured components (N) are stored separately for sorting,
|
|
851
|
+
indexing, or locale-aware rendering.
|
|
852
|
+
additionalProperties: false
|
|
853
|
+
properties:
|
|
854
|
+
formatted:
|
|
855
|
+
type: string
|
|
856
|
+
family:
|
|
857
|
+
type: string
|
|
858
|
+
given:
|
|
859
|
+
type: string
|
|
860
|
+
additional:
|
|
861
|
+
type: string
|
|
862
|
+
prefix:
|
|
863
|
+
type: string
|
|
864
|
+
suffix:
|
|
865
|
+
type: string
|
|
866
|
+
extensions:
|
|
867
|
+
type: array
|
|
868
|
+
items:
|
|
869
|
+
"$ref": "#/$defs/MeetingExtension"
|
|
870
|
+
Contact:
|
|
871
|
+
type: object
|
|
872
|
+
description: |
|
|
873
|
+
VCARD-like abstract contact. 1.0: per-field Localized
|
|
874
|
+
(name, title, affiliation, address). Added `urn` (registry
|
|
875
|
+
identity) and `ref` (reference-by-URN).
|
|
876
|
+
additionalProperties: false
|
|
877
|
+
properties:
|
|
878
|
+
ref:
|
|
879
|
+
type: string
|
|
880
|
+
description: URN reference; if set, ignore other fields
|
|
881
|
+
urn:
|
|
882
|
+
type: string
|
|
883
|
+
pattern: "^urn:edoxen:contact:[^:]+:[^:]+$"
|
|
884
|
+
name:
|
|
885
|
+
type: array
|
|
886
|
+
items:
|
|
887
|
+
"$ref": "#/$defs/LocalizedName"
|
|
888
|
+
kind:
|
|
889
|
+
type: string
|
|
890
|
+
role:
|
|
891
|
+
type: string
|
|
892
|
+
title:
|
|
893
|
+
type: array
|
|
894
|
+
items:
|
|
895
|
+
"$ref": "#/$defs/LocalizedString"
|
|
896
|
+
affiliation:
|
|
897
|
+
type: array
|
|
898
|
+
items:
|
|
899
|
+
"$ref": "#/$defs/LocalizedString"
|
|
900
|
+
contact_methods:
|
|
901
|
+
type: array
|
|
902
|
+
items:
|
|
903
|
+
"$ref": "#/$defs/ContactMethod"
|
|
904
|
+
identifiers:
|
|
905
|
+
type: array
|
|
906
|
+
items:
|
|
907
|
+
"$ref": "#/$defs/ContactIdentifier"
|
|
908
|
+
address:
|
|
909
|
+
type: array
|
|
910
|
+
items:
|
|
911
|
+
"$ref": "#/$defs/LocalizedString"
|
|
912
|
+
extensions:
|
|
913
|
+
type: array
|
|
914
|
+
items:
|
|
915
|
+
"$ref": "#/$defs/MeetingExtension"
|
|
916
|
+
Person:
|
|
917
|
+
type: object
|
|
918
|
+
description: |
|
|
919
|
+
A Contact that is specifically an individual human. Schema
|
|
920
|
+
duplicates Contact's properties because JSON-Schema draft-07
|
|
921
|
+
doesn't support `extends`. Same shape; semantically a subclass.
|
|
922
|
+
additionalProperties: false
|
|
923
|
+
properties:
|
|
924
|
+
ref:
|
|
925
|
+
type: string
|
|
926
|
+
urn:
|
|
927
|
+
type: string
|
|
928
|
+
pattern: "^urn:edoxen:contact:[^:]+:[^:]+$"
|
|
929
|
+
name:
|
|
930
|
+
type: array
|
|
931
|
+
items:
|
|
932
|
+
"$ref": "#/$defs/LocalizedName"
|
|
933
|
+
kind:
|
|
934
|
+
type: string
|
|
935
|
+
role:
|
|
936
|
+
type: string
|
|
937
|
+
title:
|
|
938
|
+
type: array
|
|
939
|
+
items:
|
|
940
|
+
"$ref": "#/$defs/LocalizedString"
|
|
941
|
+
affiliation:
|
|
942
|
+
type: array
|
|
943
|
+
items:
|
|
944
|
+
"$ref": "#/$defs/LocalizedString"
|
|
945
|
+
contact_methods:
|
|
946
|
+
type: array
|
|
947
|
+
items:
|
|
948
|
+
"$ref": "#/$defs/ContactMethod"
|
|
949
|
+
identifiers:
|
|
950
|
+
type: array
|
|
951
|
+
items:
|
|
952
|
+
"$ref": "#/$defs/ContactIdentifier"
|
|
953
|
+
address:
|
|
954
|
+
type: array
|
|
955
|
+
items:
|
|
956
|
+
"$ref": "#/$defs/LocalizedString"
|
|
957
|
+
extensions:
|
|
958
|
+
type: array
|
|
959
|
+
items:
|
|
960
|
+
"$ref": "#/$defs/MeetingExtension"
|
|
961
|
+
Reference:
|
|
962
|
+
type: object
|
|
963
|
+
description: Generic document reference.
|
|
964
|
+
additionalProperties: false
|
|
965
|
+
properties:
|
|
966
|
+
ref:
|
|
967
|
+
type: string
|
|
968
|
+
kind:
|
|
969
|
+
type: string
|
|
970
|
+
title:
|
|
971
|
+
type: array
|
|
972
|
+
items:
|
|
973
|
+
"$ref": "#/$defs/LocalizedString"
|
|
974
|
+
VoteRecord:
|
|
975
|
+
type: object
|
|
976
|
+
description: One vote by one person on one decision/voting.
|
|
977
|
+
additionalProperties: false
|
|
978
|
+
required:
|
|
979
|
+
- person
|
|
980
|
+
- vote
|
|
981
|
+
properties:
|
|
982
|
+
decision_ref:
|
|
983
|
+
type: string
|
|
984
|
+
voting_ref:
|
|
985
|
+
type: string
|
|
986
|
+
person:
|
|
987
|
+
"$ref": "#/$defs/Person"
|
|
988
|
+
affiliation:
|
|
989
|
+
type: string
|
|
990
|
+
vote:
|
|
991
|
+
"$ref": "#/$defs/VoteType"
|
|
992
|
+
role:
|
|
993
|
+
type: string
|
|
994
|
+
notes:
|
|
995
|
+
type: string
|
|
996
|
+
extensions:
|
|
997
|
+
type: array
|
|
998
|
+
items:
|
|
999
|
+
"$ref": "#/$defs/MeetingExtension"
|
|
1000
|
+
Officer:
|
|
1001
|
+
type: object
|
|
1002
|
+
description: A person holding a structural role in a Meeting.
|
|
1003
|
+
additionalProperties: false
|
|
1004
|
+
properties:
|
|
1005
|
+
role:
|
|
1006
|
+
"$ref": "#/$defs/OfficerRole"
|
|
1007
|
+
person:
|
|
1008
|
+
"$ref": "#/$defs/Person"
|
|
1009
|
+
term_start:
|
|
1010
|
+
type: string
|
|
1011
|
+
format: date
|
|
1012
|
+
term_end:
|
|
1013
|
+
type: string
|
|
1014
|
+
format: date
|
|
1015
|
+
extensions:
|
|
1016
|
+
type: array
|
|
1017
|
+
items:
|
|
1018
|
+
"$ref": "#/$defs/MeetingExtension"
|
|
1019
|
+
MeetingComponent:
|
|
1020
|
+
type: object
|
|
1021
|
+
description: 'Flat sub-event of a Meeting. 1.0: per-field Localized.'
|
|
1022
|
+
additionalProperties: false
|
|
1023
|
+
properties:
|
|
1024
|
+
identifier:
|
|
1025
|
+
type: string
|
|
1026
|
+
urn:
|
|
1027
|
+
type: string
|
|
1028
|
+
kind:
|
|
1029
|
+
"$ref": "#/$defs/ComponentKind"
|
|
1030
|
+
body_type:
|
|
1031
|
+
type: string
|
|
1032
|
+
title:
|
|
1033
|
+
type: array
|
|
1034
|
+
items:
|
|
1035
|
+
"$ref": "#/$defs/LocalizedString"
|
|
1036
|
+
description:
|
|
1037
|
+
type: array
|
|
1038
|
+
items:
|
|
1039
|
+
"$ref": "#/$defs/LocalizedString"
|
|
1040
|
+
starts_at:
|
|
1041
|
+
type: string
|
|
1042
|
+
format: date-time
|
|
1043
|
+
ends_at:
|
|
1044
|
+
type: string
|
|
1045
|
+
format: date-time
|
|
1046
|
+
time_label:
|
|
1047
|
+
type: array
|
|
1048
|
+
items:
|
|
1049
|
+
"$ref": "#/$defs/LocalizedString"
|
|
1050
|
+
venue_refs:
|
|
1051
|
+
type: array
|
|
1052
|
+
items:
|
|
1053
|
+
type: string
|
|
1054
|
+
officers:
|
|
1055
|
+
type: array
|
|
1056
|
+
items:
|
|
1057
|
+
"$ref": "#/$defs/Officer"
|
|
1058
|
+
agenda_ref:
|
|
1059
|
+
type: string
|
|
1060
|
+
minutes_ref:
|
|
1061
|
+
type: string
|
|
1062
|
+
attendance_refs:
|
|
1063
|
+
type: array
|
|
1064
|
+
items:
|
|
1065
|
+
type: string
|
|
1066
|
+
extensions:
|
|
1067
|
+
type: array
|
|
1068
|
+
items:
|
|
1069
|
+
"$ref": "#/$defs/MeetingExtension"
|
|
1070
|
+
MeetingSeries:
|
|
1071
|
+
type: object
|
|
1072
|
+
description: 'Parent of recurring Meeting instances. 1.0: per-field Localized.'
|
|
1073
|
+
additionalProperties: false
|
|
1074
|
+
properties:
|
|
1075
|
+
identifier:
|
|
1076
|
+
type: array
|
|
1077
|
+
items:
|
|
1078
|
+
"$ref": "#/$defs/StructuredIdentifier"
|
|
1079
|
+
urn:
|
|
1080
|
+
type: string
|
|
1081
|
+
name:
|
|
1082
|
+
type: array
|
|
1083
|
+
items:
|
|
1084
|
+
"$ref": "#/$defs/LocalizedString"
|
|
1085
|
+
description:
|
|
1086
|
+
type: array
|
|
1087
|
+
items:
|
|
1088
|
+
"$ref": "#/$defs/LocalizedString"
|
|
1089
|
+
recurrence:
|
|
1090
|
+
"$ref": "#/$defs/Recurrence"
|
|
1091
|
+
term:
|
|
1092
|
+
type: string
|
|
1093
|
+
contact:
|
|
1094
|
+
"$ref": "#/$defs/Contact"
|
|
1095
|
+
hosts:
|
|
1096
|
+
type: array
|
|
1097
|
+
items:
|
|
1098
|
+
"$ref": "#/$defs/HostRef"
|
|
1099
|
+
kind:
|
|
1100
|
+
type: string
|
|
1101
|
+
meeting_refs:
|
|
1102
|
+
type: array
|
|
1103
|
+
items:
|
|
1104
|
+
type: string
|
|
1105
|
+
extensions:
|
|
1106
|
+
type: array
|
|
1107
|
+
items:
|
|
1108
|
+
"$ref": "#/$defs/MeetingExtension"
|
|
1109
|
+
body_type:
|
|
1110
|
+
type: string
|
|
1111
|
+
HostRef:
|
|
1112
|
+
type: object
|
|
1113
|
+
description: Typed reference to a hosting organization.
|
|
1114
|
+
additionalProperties: false
|
|
1115
|
+
required:
|
|
1116
|
+
- ref
|
|
1117
|
+
properties:
|
|
1118
|
+
ref:
|
|
1119
|
+
type: string
|
|
1120
|
+
type:
|
|
1121
|
+
"$ref": "#/$defs/HostType"
|
|
1122
|
+
role:
|
|
1123
|
+
type: string
|
|
1124
|
+
contact:
|
|
1125
|
+
"$ref": "#/$defs/Contact"
|
|
1126
|
+
ContactCollection:
|
|
1127
|
+
type: object
|
|
1128
|
+
description: |
|
|
1129
|
+
Registry of Contacts indexed by scoped URN. Members carry
|
|
1130
|
+
`urn: urn:edoxen:contact:{scope}:{local-id}`; the collection's
|
|
1131
|
+
`scope` MUST match the scope segment in member URNs.
|
|
1132
|
+
additionalProperties: false
|
|
1133
|
+
properties:
|
|
1134
|
+
scope:
|
|
1135
|
+
type: string
|
|
1136
|
+
title:
|
|
1137
|
+
type: array
|
|
1138
|
+
items:
|
|
1139
|
+
"$ref": "#/$defs/LocalizedString"
|
|
1140
|
+
contacts:
|
|
1141
|
+
type: array
|
|
1142
|
+
items:
|
|
1143
|
+
"$ref": "#/$defs/Contact"
|
|
1144
|
+
extensions:
|
|
1145
|
+
type: array
|
|
1146
|
+
items:
|
|
1147
|
+
"$ref": "#/$defs/MeetingExtension"
|
|
1148
|
+
VenueCollection:
|
|
1149
|
+
type: object
|
|
1150
|
+
description: 'Registry of Venues indexed by scoped URN. Mirrors ContactCollection.
|
|
1151
|
+
|
|
1152
|
+
'
|
|
1153
|
+
additionalProperties: false
|
|
1154
|
+
properties:
|
|
1155
|
+
scope:
|
|
1156
|
+
type: string
|
|
1157
|
+
title:
|
|
1158
|
+
type: array
|
|
1159
|
+
items:
|
|
1160
|
+
"$ref": "#/$defs/LocalizedString"
|
|
1161
|
+
venues:
|
|
1162
|
+
type: array
|
|
1163
|
+
items:
|
|
1164
|
+
"$ref": "#/$defs/Venue"
|
|
1165
|
+
extensions:
|
|
1166
|
+
type: array
|
|
1167
|
+
items:
|
|
1168
|
+
"$ref": "#/$defs/MeetingExtension"
|
|
1169
|
+
ActionType:
|
|
1170
|
+
type: string
|
|
1171
|
+
description: |
|
|
1172
|
+
Action verb. Edoxen::Enums::ACTION_TYPE lists the canonical set
|
|
1173
|
+
(28 values). The schema is permissive — adopters may use
|
|
1174
|
+
body-specific verbs (e.g. "scopes", "directs", "establishes")
|
|
1175
|
+
outside the canonical set. The canonical set is advisory; the
|
|
1176
|
+
body_vocabulary mechanism (1.0, TODO.refactor/1.0-design) will
|
|
1177
|
+
eventually map body-specific verbs to canonical types.
|
|
1178
|
+
ConsiderationType:
|
|
1179
|
+
type: string
|
|
1180
|
+
description: |
|
|
1181
|
+
Consideration verb. Edoxen::Enums::CONSIDERATION_TYPE lists the
|
|
1182
|
+
canonical set. The schema is permissive — adopters may use
|
|
1183
|
+
body-specific verbs outside the canonical set (same rationale as
|
|
1184
|
+
ActionType).
|
|
1185
|
+
ApprovalType:
|
|
1186
|
+
type: string
|
|
1187
|
+
description: Edoxen::Enums::APPROVAL_TYPE.
|
|
1188
|
+
enum:
|
|
1189
|
+
- affirmative
|
|
1190
|
+
- negative
|
|
1191
|
+
ApprovalDegree:
|
|
1192
|
+
type: string
|
|
1193
|
+
description: Edoxen::Enums::APPROVAL_DEGREE.
|
|
1194
|
+
enum:
|
|
1195
|
+
- unanimous
|
|
1196
|
+
- majority
|
|
1197
|
+
- minority
|
|
1198
|
+
DecisionKind:
|
|
1199
|
+
type: string
|
|
1200
|
+
description: Edoxen::Enums::DECISION_KIND.
|
|
1201
|
+
enum:
|
|
1202
|
+
- resolution
|
|
1203
|
+
- order
|
|
1204
|
+
- ruling
|
|
1205
|
+
- determination
|
|
1206
|
+
- recommendation
|
|
1207
|
+
- statement
|
|
1208
|
+
- finding
|
|
1209
|
+
- opinion
|
|
1210
|
+
- other
|
|
1211
|
+
DecisionKindCanonical:
|
|
1212
|
+
type: string
|
|
1213
|
+
description: |
|
|
1214
|
+
Edoxen::Enums::DECISION_KIND_CANONICAL — short abstract set (1.0,
|
|
1215
|
+
TODO.refactor/1.0-design). Bodies extend via `body_type` + per-dataset
|
|
1216
|
+
`body_vocabulary[]`.
|
|
1217
|
+
enum:
|
|
1218
|
+
- decision
|
|
1219
|
+
- recommendation
|
|
1220
|
+
- statement
|
|
1221
|
+
- finding
|
|
1222
|
+
- other
|
|
1223
|
+
DecisionStatus:
|
|
1224
|
+
type: string
|
|
1225
|
+
description: Edoxen::Enums::DECISION_STATUS.
|
|
1226
|
+
enum:
|
|
1227
|
+
- draft
|
|
1228
|
+
- proposed
|
|
1229
|
+
- under_consideration
|
|
1230
|
+
- decided
|
|
1231
|
+
- negatived
|
|
1232
|
+
- withdrawn
|
|
1233
|
+
- deferred
|
|
1234
|
+
DecisionDateType:
|
|
1235
|
+
type: string
|
|
1236
|
+
description: Edoxen::Enums::DECISION_DATE_TYPE.
|
|
1237
|
+
enum:
|
|
1238
|
+
- adoption
|
|
1239
|
+
- drafted
|
|
1240
|
+
- discussed
|
|
1241
|
+
- proposed
|
|
1242
|
+
- decided
|
|
1243
|
+
- negatived
|
|
1244
|
+
- withdrawn
|
|
1245
|
+
- published
|
|
1246
|
+
- effective
|
|
1247
|
+
DecisionRelationType:
|
|
1248
|
+
type: string
|
|
1249
|
+
description: Edoxen::Enums::DECISION_RELATION_TYPE.
|
|
1250
|
+
enum:
|
|
1251
|
+
- annex_of
|
|
1252
|
+
- has_annex
|
|
1253
|
+
- updates
|
|
1254
|
+
- refines
|
|
1255
|
+
- replaces
|
|
1256
|
+
- considers
|
|
1257
|
+
- cites
|
|
1258
|
+
MotionStatus:
|
|
1259
|
+
type: string
|
|
1260
|
+
description: Edoxen::Enums::MOTION_STATUS.
|
|
1261
|
+
enum:
|
|
1262
|
+
- introduced
|
|
1263
|
+
- seconded
|
|
1264
|
+
- debating
|
|
1265
|
+
- question_put
|
|
1266
|
+
- voting
|
|
1267
|
+
- carried
|
|
1268
|
+
- negatived
|
|
1269
|
+
- withdrawn
|
|
1270
|
+
- lapsed
|
|
1271
|
+
VotingStatus:
|
|
1272
|
+
type: string
|
|
1273
|
+
description: Edoxen::Enums::VOTING_STATUS.
|
|
1274
|
+
enum:
|
|
1275
|
+
- called
|
|
1276
|
+
- in_progress
|
|
1277
|
+
- decided
|
|
1278
|
+
- withdrawn
|
|
1279
|
+
- deferred
|
|
1280
|
+
VotingMethod:
|
|
1281
|
+
type: string
|
|
1282
|
+
description: Edoxen::Enums::VOTING_METHOD.
|
|
1283
|
+
enum:
|
|
1284
|
+
- voice
|
|
1285
|
+
- division
|
|
1286
|
+
- show_of_hands
|
|
1287
|
+
- roll_call
|
|
1288
|
+
- electronic
|
|
1289
|
+
- secret_ballot
|
|
1290
|
+
- unanimous_consent
|
|
1291
|
+
- consensus
|
|
1292
|
+
VotingOutcome:
|
|
1293
|
+
type: string
|
|
1294
|
+
description: Edoxen::Enums::VOTING_OUTCOME.
|
|
1295
|
+
enum:
|
|
1296
|
+
- passed
|
|
1297
|
+
- negatived
|
|
1298
|
+
- tied
|
|
1299
|
+
- withdrawn
|
|
1300
|
+
TopicStatus:
|
|
1301
|
+
type: string
|
|
1302
|
+
description: Edoxen::Enums::TOPIC_STATUS.
|
|
1303
|
+
enum:
|
|
1304
|
+
- open
|
|
1305
|
+
- under_discussion
|
|
1306
|
+
- decided
|
|
1307
|
+
- deferred
|
|
1308
|
+
- withdrawn
|
|
1309
|
+
VenueKind:
|
|
1310
|
+
type: string
|
|
1311
|
+
description: Edoxen::Enums::VENUE_KIND.
|
|
1312
|
+
enum:
|
|
1313
|
+
- physical
|
|
1314
|
+
- virtual
|
|
1315
|
+
VirtualFeature:
|
|
1316
|
+
type: string
|
|
1317
|
+
description: Edoxen::Enums::VIRTUAL_FEATURE.
|
|
1318
|
+
enum:
|
|
1319
|
+
- audio
|
|
1320
|
+
- video
|
|
1321
|
+
- chat
|
|
1322
|
+
- phone
|
|
1323
|
+
- screen
|
|
1324
|
+
- feed
|
|
1325
|
+
Visibility:
|
|
1326
|
+
type: string
|
|
1327
|
+
description: Edoxen::Enums::VISIBILITY.
|
|
1328
|
+
enum:
|
|
1329
|
+
- public
|
|
1330
|
+
- private
|
|
1331
|
+
- confidential
|
|
1332
|
+
AttendanceRole:
|
|
1333
|
+
type: string
|
|
1334
|
+
description: Edoxen::Enums::ATTENDANCE_ROLE.
|
|
1335
|
+
enum:
|
|
1336
|
+
- chair
|
|
1337
|
+
- required
|
|
1338
|
+
- optional
|
|
1339
|
+
- non_participant
|
|
1340
|
+
AttendanceResponse:
|
|
1341
|
+
type: string
|
|
1342
|
+
description: Edoxen::Enums::ATTENDANCE_RESPONSE.
|
|
1343
|
+
enum:
|
|
1344
|
+
- pending
|
|
1345
|
+
- confirmed
|
|
1346
|
+
- declined
|
|
1347
|
+
- tentative
|
|
1348
|
+
- delegated
|
|
1349
|
+
ComponentKind:
|
|
1350
|
+
type: string
|
|
1351
|
+
description: Edoxen::Enums::COMPONENT_KIND.
|
|
1352
|
+
enum:
|
|
1353
|
+
- track
|
|
1354
|
+
- session
|
|
1355
|
+
- debate
|
|
1356
|
+
- breakout
|
|
1357
|
+
- bof
|
|
1358
|
+
- plenary_session
|
|
1359
|
+
- working_group_session
|
|
1360
|
+
- committee_of_the_whole
|
|
1361
|
+
- keynote
|
|
1362
|
+
- address
|
|
1363
|
+
- statement
|
|
1364
|
+
- question_time
|
|
1365
|
+
- opening
|
|
1366
|
+
- closing
|
|
1367
|
+
- break
|
|
1368
|
+
- reception
|
|
1369
|
+
- registration
|
|
1370
|
+
- networking
|
|
1371
|
+
- other
|
|
1372
|
+
ComponentKindCanonical:
|
|
1373
|
+
type: string
|
|
1374
|
+
description: |
|
|
1375
|
+
Edoxen::Enums::COMPONENT_KIND_CANONICAL — short abstract set
|
|
1376
|
+
(1.0, TODO.refactor/1.0-design).
|
|
1377
|
+
enum:
|
|
1378
|
+
- deliberative
|
|
1379
|
+
- working
|
|
1380
|
+
- ceremonial
|
|
1381
|
+
- break
|
|
1382
|
+
- other
|
|
1383
|
+
OfficerRole:
|
|
1384
|
+
type: string
|
|
1385
|
+
description: Edoxen::Enums::OFFICER_ROLE.
|
|
1386
|
+
enum:
|
|
1387
|
+
- chair
|
|
1388
|
+
- vice_chair
|
|
1389
|
+
- deputy_chair
|
|
1390
|
+
- secretary
|
|
1391
|
+
- treasurer
|
|
1392
|
+
- parliamentarian
|
|
1393
|
+
- presiding_officer
|
|
1394
|
+
- sergeant_at_arms
|
|
1395
|
+
- other
|
|
1396
|
+
RecurrenceFreq:
|
|
1397
|
+
type: string
|
|
1398
|
+
description: Edoxen::Enums::RECURRENCE_FREQ.
|
|
1399
|
+
enum:
|
|
1400
|
+
- secondly
|
|
1401
|
+
- minutely
|
|
1402
|
+
- hourly
|
|
1403
|
+
- daily
|
|
1404
|
+
- weekly
|
|
1405
|
+
- monthly
|
|
1406
|
+
- yearly
|
|
1407
|
+
UrlKind:
|
|
1408
|
+
type: string
|
|
1409
|
+
description: Edoxen::Enums::URL_KIND.
|
|
1410
|
+
enum:
|
|
1411
|
+
- access
|
|
1412
|
+
- report
|
|
1413
|
+
SourceUrlKind:
|
|
1414
|
+
type: string
|
|
1415
|
+
description: Edoxen::Enums::SOURCE_URL_KIND.
|
|
1416
|
+
enum:
|
|
1417
|
+
- agenda_pdf
|
|
1418
|
+
- minutes_pdf
|
|
1419
|
+
- decisions_pdf
|
|
1420
|
+
- report_pdf
|
|
1421
|
+
- register_url
|
|
1422
|
+
- landing_page
|
|
1423
|
+
HostType:
|
|
1424
|
+
type: string
|
|
1425
|
+
description: Edoxen::Enums::HOST_TYPE.
|
|
1426
|
+
enum:
|
|
1427
|
+
- national_body
|
|
1428
|
+
- liaison
|
|
1429
|
+
- associate
|
|
1430
|
+
- organizer
|
|
1431
|
+
VoteType:
|
|
1432
|
+
type: string
|
|
1433
|
+
description: Edoxen::Enums::VOTE_TYPE.
|
|
1434
|
+
enum:
|
|
1435
|
+
- affirmative
|
|
1436
|
+
- negative
|
|
1437
|
+
- abstain
|
|
1438
|
+
- absent
|
|
1439
|
+
- not_applicable
|
|
1440
|
+
DateTimeRange:
|
|
1441
|
+
type: object
|
|
1442
|
+
description: |
|
|
1443
|
+
Start + end pair with sub-day precision. Parallel to DateRange;
|
|
1444
|
+
use when day granularity is insufficient (e.g. a meeting that
|
|
1445
|
+
ran 09:00–11:30).
|
|
1446
|
+
additionalProperties: false
|
|
1447
|
+
properties:
|
|
1448
|
+
start:
|
|
1449
|
+
type: string
|
|
1450
|
+
format: date-time
|
|
1451
|
+
end:
|
|
1452
|
+
type: string
|
|
1453
|
+
format: date-time
|
|
1454
|
+
StatementKind:
|
|
1455
|
+
type: string
|
|
1456
|
+
description: |
|
|
1457
|
+
Discriminator for the three BS 0:2006 statement types. Adding a
|
|
1458
|
+
new kind is a one-line enum extension; the Statement model
|
|
1459
|
+
itself never needs to change (OCP).
|
|
1460
|
+
enum:
|
|
1461
|
+
- statement
|
|
1462
|
+
- comment
|
|
1463
|
+
- standpoint
|
|
1464
|
+
DeclarationKind:
|
|
1465
|
+
type: string
|
|
1466
|
+
description: |
|
|
1467
|
+
Discriminator for the two BS 0:2006 declaration types
|
|
1468
|
+
(conflict of interest, IPR).
|
|
1469
|
+
enum:
|
|
1470
|
+
- conflict_of_interest
|
|
1471
|
+
- ipr
|
|
1472
|
+
Statement:
|
|
1473
|
+
type: object
|
|
1474
|
+
description: |
|
|
1475
|
+
One remark made by one or more meeting members on a topic or a
|
|
1476
|
+
minutes section. Per-field Localized description; party is a
|
|
1477
|
+
list of Person references. The `kind` discriminator separates
|
|
1478
|
+
the three BS 0:2006 statement types.
|
|
1479
|
+
additionalProperties: false
|
|
1480
|
+
properties:
|
|
1481
|
+
kind:
|
|
1482
|
+
"$ref": "#/$defs/StatementKind"
|
|
1483
|
+
description:
|
|
1484
|
+
type: array
|
|
1485
|
+
items:
|
|
1486
|
+
"$ref": "#/$defs/LocalizedString"
|
|
1487
|
+
party:
|
|
1488
|
+
type: array
|
|
1489
|
+
items:
|
|
1490
|
+
"$ref": "#/$defs/Person"
|
|
1491
|
+
extensions:
|
|
1492
|
+
type: array
|
|
1493
|
+
items:
|
|
1494
|
+
"$ref": "#/$defs/MeetingExtension"
|
|
1495
|
+
Declaration:
|
|
1496
|
+
type: object
|
|
1497
|
+
description: |
|
|
1498
|
+
A formal declaration (conflict of interest or IPR) made by one
|
|
1499
|
+
or more meeting members. IPR-specific fields (`ipr_subject_ref`,
|
|
1500
|
+
`ipr_target_ref`) are populated only when `kind == "ipr"`.
|
|
1501
|
+
additionalProperties: false
|
|
1502
|
+
properties:
|
|
1503
|
+
kind:
|
|
1504
|
+
"$ref": "#/$defs/DeclarationKind"
|
|
1505
|
+
description:
|
|
1506
|
+
type: array
|
|
1507
|
+
items:
|
|
1508
|
+
"$ref": "#/$defs/LocalizedString"
|
|
1509
|
+
party:
|
|
1510
|
+
type: array
|
|
1511
|
+
items:
|
|
1512
|
+
"$ref": "#/$defs/Person"
|
|
1513
|
+
ipr_subject_ref:
|
|
1514
|
+
"$ref": "#/$defs/EntityRef"
|
|
1515
|
+
ipr_target_ref:
|
|
1516
|
+
"$ref": "#/$defs/EntityRef"
|
|
1517
|
+
extensions:
|
|
1518
|
+
type: array
|
|
1519
|
+
items:
|
|
1520
|
+
"$ref": "#/$defs/MeetingExtension"
|