@learncard/credential-library 2.0.4 → 2.0.5
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.
- package/dist/bundles/index.d.ts +5 -0
- package/dist/bundles/index.d.ts.map +1 -0
- package/dist/bundles/student.d.ts +3 -0
- package/dist/bundles/student.d.ts.map +1 -0
- package/dist/bundles/types.d.ts +24 -0
- package/dist/bundles/types.d.ts.map +1 -0
- package/dist/credential-library.cjs.development.js +10817 -682
- package/dist/credential-library.cjs.development.js.map +4 -4
- package/dist/credential-library.cjs.production.min.js +11 -1
- package/dist/credential-library.cjs.production.min.js.map +4 -4
- package/dist/credential-library.esm.js +10813 -676
- package/dist/credential-library.esm.js.map +4 -4
- package/dist/fixtures/clr/achievement-id-associations.d.ts +3 -0
- package/dist/fixtures/clr/achievement-id-associations.d.ts.map +1 -0
- package/dist/fixtures/clr/employment-record.d.ts +8 -0
- package/dist/fixtures/clr/employment-record.d.ts.map +1 -0
- package/dist/fixtures/clr/licensing-regulatory-record.d.ts +8 -0
- package/dist/fixtures/clr/licensing-regulatory-record.d.ts.map +1 -0
- package/dist/fixtures/clr/military-training-record.d.ts +8 -0
- package/dist/fixtures/clr/military-training-record.d.ts.map +1 -0
- package/dist/fixtures/clr/mixed-career-record.d.ts +8 -0
- package/dist/fixtures/clr/mixed-career-record.d.ts.map +1 -0
- package/dist/fixtures/clr/professional-organization-record.d.ts +8 -0
- package/dist/fixtures/clr/professional-organization-record.d.ts.map +1 -0
- package/dist/fixtures/clr/student-official-academic-transcript.d.ts +3 -0
- package/dist/fixtures/clr/student-official-academic-transcript.d.ts.map +1 -0
- package/dist/fixtures/clr/training-provider-record.d.ts +8 -0
- package/dist/fixtures/clr/training-provider-record.d.ts.map +1 -0
- package/dist/fixtures/index.d.ts +11 -1
- package/dist/fixtures/index.d.ts.map +1 -1
- package/dist/fixtures/obv3/student-additional-credentials.d.ts +3 -0
- package/dist/fixtures/obv3/student-additional-credentials.d.ts.map +1 -0
- package/dist/fixtures/obv3/student-sample-badges.d.ts +586 -0
- package/dist/fixtures/obv3/student-sample-badges.d.ts.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/prepare.d.ts.map +1 -1
- package/package.json +6 -6
- package/src/__tests__/bundles.test.ts +234 -0
- package/src/__tests__/clr-non-academic.test.ts +220 -0
- package/src/__tests__/registry.test.ts +31 -0
- package/src/bundles/index.ts +19 -0
- package/src/bundles/student.ts +251 -0
- package/src/bundles/types.ts +25 -0
- package/src/fixtures/clr/README.md +142 -0
- package/src/fixtures/clr/achievement-id-associations.ts +342 -0
- package/src/fixtures/clr/employment-record.ts +487 -0
- package/src/fixtures/clr/licensing-regulatory-record.ts +388 -0
- package/src/fixtures/clr/military-training-record.ts +468 -0
- package/src/fixtures/clr/mixed-career-record.ts +814 -0
- package/src/fixtures/clr/professional-organization-record.ts +403 -0
- package/src/fixtures/clr/student-official-academic-transcript.ts +3202 -0
- package/src/fixtures/clr/training-provider-record.ts +510 -0
- package/src/fixtures/index.ts +41 -0
- package/src/fixtures/obv3/student-additional-credentials.ts +3912 -0
- package/src/fixtures/obv3/student-sample-badges.ts +424 -0
- package/src/index.ts +2 -0
- package/src/prepare.ts +55 -11
- package/dist/__tests__/docs-json.test.d.ts +0 -2
- package/dist/__tests__/docs-json.test.d.ts.map +0 -1
- package/dist/__tests__/issuance.test.d.ts +0 -2
- package/dist/__tests__/issuance.test.d.ts.map +0 -1
- package/dist/__tests__/registry.test.d.ts +0 -2
- package/dist/__tests__/registry.test.d.ts.map +0 -1
- package/dist/__tests__/sd-jwt-vc.test.d.ts +0 -2
- package/dist/__tests__/sd-jwt-vc.test.d.ts.map +0 -1
|
@@ -0,0 +1,403 @@
|
|
|
1
|
+
import type { CredentialFixture } from '../../types';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* LC-2184: synthetic, unsigned CLR display/issuance template.
|
|
5
|
+
* Both the outer record and embedded achievements intentionally have no proof.
|
|
6
|
+
* Sign/rebind children before the outer CLR for cryptographic verification tests.
|
|
7
|
+
*/
|
|
8
|
+
export const clrProfessionalOrganizationRecord: CredentialFixture = {
|
|
9
|
+
id: 'clr/professional-organization-record',
|
|
10
|
+
name: 'Membership & Development — Society of Applied Practice',
|
|
11
|
+
description:
|
|
12
|
+
'Explores membership admission and identifiers, a membership period, volunteer roles, and independently issued professional-development evidence. Unsigned display/issuance template; child proofs must be issued separately for a fully verifiable CLR.',
|
|
13
|
+
spec: 'clr-v2',
|
|
14
|
+
profile: 'learner-record',
|
|
15
|
+
features: [
|
|
16
|
+
'nested-credentials',
|
|
17
|
+
'associations',
|
|
18
|
+
'results',
|
|
19
|
+
'evidence',
|
|
20
|
+
'alignment',
|
|
21
|
+
'source',
|
|
22
|
+
'expiration',
|
|
23
|
+
],
|
|
24
|
+
source: 'synthetic',
|
|
25
|
+
signed: false,
|
|
26
|
+
validity: 'valid',
|
|
27
|
+
tags: [
|
|
28
|
+
'lc-2184',
|
|
29
|
+
'non-academic',
|
|
30
|
+
'synthetic',
|
|
31
|
+
'professional-organization',
|
|
32
|
+
'membership',
|
|
33
|
+
'community-service',
|
|
34
|
+
'professional-development',
|
|
35
|
+
'multi-issuer',
|
|
36
|
+
],
|
|
37
|
+
credential: {
|
|
38
|
+
'@context': [
|
|
39
|
+
'https://www.w3.org/ns/credentials/v2',
|
|
40
|
+
'https://purl.imsglobal.org/spec/clr/v2p0/context.json',
|
|
41
|
+
'https://purl.imsglobal.org/spec/ob/v3p0/context-3.0.3.json',
|
|
42
|
+
{
|
|
43
|
+
partial: {
|
|
44
|
+
'@id': 'https://purl.imsglobal.org/spec/vc/clr/vocab.html#partial',
|
|
45
|
+
'@type': 'http://www.w3.org/2001/XMLSchema#boolean',
|
|
46
|
+
},
|
|
47
|
+
identifier: {
|
|
48
|
+
'@id': 'https://purl.imsglobal.org/spec/vc/ob/vocab.html#identifier',
|
|
49
|
+
'@container': '@set',
|
|
50
|
+
},
|
|
51
|
+
},
|
|
52
|
+
],
|
|
53
|
+
id: 'urn:uuid:d9547bd5-c1ed-5049-847a-24fa830bdfee',
|
|
54
|
+
type: ['VerifiableCredential', 'ClrCredential'],
|
|
55
|
+
name: 'Membership & Development — Society of Applied Practice',
|
|
56
|
+
description:
|
|
57
|
+
'Synthetic demonstration record as of September 1, 2026. Explores membership admission and identifiers, a membership period, volunteer roles, and independently issued professional-development evidence.',
|
|
58
|
+
issuer: {
|
|
59
|
+
id: 'did:example:lc2184-practice-guild',
|
|
60
|
+
type: ['Profile'],
|
|
61
|
+
name: 'Society of Applied Practice (Fictional)',
|
|
62
|
+
url: 'https://practice-guild.example',
|
|
63
|
+
description: 'Fictional organization used only for LearnCard display tests.',
|
|
64
|
+
},
|
|
65
|
+
validFrom: '2026-09-01T12:00:00Z',
|
|
66
|
+
partial: true,
|
|
67
|
+
credentialSubject: {
|
|
68
|
+
id: 'did:example:lc2184-alex-morgan',
|
|
69
|
+
type: ['ClrSubject'],
|
|
70
|
+
identifier: [
|
|
71
|
+
{
|
|
72
|
+
type: 'IdentityObject',
|
|
73
|
+
hashed: false,
|
|
74
|
+
identityType: 'name',
|
|
75
|
+
identityHash: 'Alex Morgan (Synthetic)',
|
|
76
|
+
},
|
|
77
|
+
],
|
|
78
|
+
verifiableCredential: [
|
|
79
|
+
{
|
|
80
|
+
'@context': [
|
|
81
|
+
'https://www.w3.org/ns/credentials/v2',
|
|
82
|
+
'https://purl.imsglobal.org/spec/ob/v3p0/context-3.0.3.json',
|
|
83
|
+
],
|
|
84
|
+
id: 'urn:uuid:6d5e9cdf-41a6-5223-abff-faceaad2f29f',
|
|
85
|
+
type: ['VerifiableCredential', 'AchievementCredential'],
|
|
86
|
+
name: 'Professional Society Membership',
|
|
87
|
+
description:
|
|
88
|
+
'Admission to a fictional professional organization for a stated period.',
|
|
89
|
+
issuer: {
|
|
90
|
+
id: 'did:example:lc2184-practice-guild',
|
|
91
|
+
type: ['Profile'],
|
|
92
|
+
name: 'Society of Applied Practice (Fictional)',
|
|
93
|
+
url: 'https://practice-guild.example',
|
|
94
|
+
description:
|
|
95
|
+
'Fictional organization used only for LearnCard display tests.',
|
|
96
|
+
},
|
|
97
|
+
validFrom: '2026-01-01T00:00:00Z',
|
|
98
|
+
credentialSubject: {
|
|
99
|
+
id: 'did:example:lc2184-alex-morgan',
|
|
100
|
+
type: ['AchievementSubject'],
|
|
101
|
+
achievement: {
|
|
102
|
+
id: 'urn:uuid:6ad7f99b-7d9d-59a8-a207-825d1d2bf57e',
|
|
103
|
+
type: ['Achievement'],
|
|
104
|
+
achievementType: 'Membership',
|
|
105
|
+
name: 'Professional Society Membership',
|
|
106
|
+
description:
|
|
107
|
+
'Admission to a fictional professional organization for a stated period.',
|
|
108
|
+
criteria: {
|
|
109
|
+
narrative:
|
|
110
|
+
'Meet the society membership criteria and receive an admission decision.',
|
|
111
|
+
},
|
|
112
|
+
creator: {
|
|
113
|
+
id: 'did:example:lc2184-practice-guild',
|
|
114
|
+
type: ['Profile'],
|
|
115
|
+
name: 'Society of Applied Practice (Fictional)',
|
|
116
|
+
url: 'https://practice-guild.example',
|
|
117
|
+
description:
|
|
118
|
+
'Fictional organization used only for LearnCard display tests.',
|
|
119
|
+
},
|
|
120
|
+
humanCode: 'SYN-PROFESSIONAL-MEMBERSHIP',
|
|
121
|
+
version: '1.0',
|
|
122
|
+
inLanguage: 'en',
|
|
123
|
+
tag: ['synthetic', 'lc-2184'],
|
|
124
|
+
resultDescription: [
|
|
125
|
+
{
|
|
126
|
+
id: 'urn:uuid:ea631e7d-ca45-58ab-85e6-f96da00fa43c',
|
|
127
|
+
type: ['ResultDescription'],
|
|
128
|
+
name: 'Membership admission',
|
|
129
|
+
resultType: 'Status',
|
|
130
|
+
},
|
|
131
|
+
],
|
|
132
|
+
alignment: [
|
|
133
|
+
{
|
|
134
|
+
type: ['Alignment'],
|
|
135
|
+
targetName: 'Professional practice participation',
|
|
136
|
+
targetCode: 'PRO-101',
|
|
137
|
+
targetFramework: 'Synthetic Workplace Capability Framework',
|
|
138
|
+
targetUrl: 'https://skills.example/framework/pro-101',
|
|
139
|
+
targetDescription:
|
|
140
|
+
'Fictional framework node for testing explicit alignment display; not a real qualification equivalence.',
|
|
141
|
+
targetType: 'CFItem',
|
|
142
|
+
},
|
|
143
|
+
],
|
|
144
|
+
},
|
|
145
|
+
activityStartDate: '2026-01-01T00:00:00Z',
|
|
146
|
+
activityEndDate: '2026-12-31T23:59:59Z',
|
|
147
|
+
role: 'Professional Member',
|
|
148
|
+
source: {
|
|
149
|
+
id: 'did:example:lc2184-practice-guild',
|
|
150
|
+
type: ['Profile'],
|
|
151
|
+
name: 'Society of Applied Practice (Fictional)',
|
|
152
|
+
url: 'https://practice-guild.example',
|
|
153
|
+
description:
|
|
154
|
+
'Fictional organization used only for LearnCard display tests.',
|
|
155
|
+
},
|
|
156
|
+
identifier: [
|
|
157
|
+
{
|
|
158
|
+
type: 'IdentityObject',
|
|
159
|
+
hashed: false,
|
|
160
|
+
identityType: 'ext:membershipId',
|
|
161
|
+
identityHash: 'SYN-MEM-2184-001',
|
|
162
|
+
},
|
|
163
|
+
],
|
|
164
|
+
result: [
|
|
165
|
+
{
|
|
166
|
+
type: ['Result'],
|
|
167
|
+
resultDescription: 'urn:uuid:ea631e7d-ca45-58ab-85e6-f96da00fa43c',
|
|
168
|
+
status: 'Completed',
|
|
169
|
+
},
|
|
170
|
+
],
|
|
171
|
+
},
|
|
172
|
+
awardedDate: '2026-01-01T00:00:00Z',
|
|
173
|
+
validUntil: '2026-12-31T23:59:59Z',
|
|
174
|
+
evidence: [
|
|
175
|
+
{
|
|
176
|
+
type: ['Evidence'],
|
|
177
|
+
name: 'Admission record',
|
|
178
|
+
description: 'Synthetic assessment evidence.',
|
|
179
|
+
narrative:
|
|
180
|
+
'Membership SYN-MEM-2184-001 covers calendar year 2026; admission is not a professional license.',
|
|
181
|
+
genre: 'Assessment record',
|
|
182
|
+
audience: 'Learner and authorized reviewer',
|
|
183
|
+
},
|
|
184
|
+
],
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
'@context': [
|
|
188
|
+
'https://www.w3.org/ns/credentials/v2',
|
|
189
|
+
'https://purl.imsglobal.org/spec/ob/v3p0/context-3.0.3.json',
|
|
190
|
+
],
|
|
191
|
+
id: 'urn:uuid:ec9e99e0-7f37-5bba-ab43-f7b121f6784f',
|
|
192
|
+
type: ['VerifiableCredential', 'AchievementCredential'],
|
|
193
|
+
name: 'Community Mentoring Contribution',
|
|
194
|
+
description:
|
|
195
|
+
'A member contribution with a documented role and activity period.',
|
|
196
|
+
issuer: {
|
|
197
|
+
id: 'did:example:lc2184-practice-guild',
|
|
198
|
+
type: ['Profile'],
|
|
199
|
+
name: 'Society of Applied Practice (Fictional)',
|
|
200
|
+
url: 'https://practice-guild.example',
|
|
201
|
+
description:
|
|
202
|
+
'Fictional organization used only for LearnCard display tests.',
|
|
203
|
+
},
|
|
204
|
+
validFrom: '2026-07-03T12:00:00Z',
|
|
205
|
+
credentialSubject: {
|
|
206
|
+
id: 'did:example:lc2184-alex-morgan',
|
|
207
|
+
type: ['AchievementSubject'],
|
|
208
|
+
achievement: {
|
|
209
|
+
id: 'urn:uuid:0d94d9bc-0354-5f50-9644-c20495128c8a',
|
|
210
|
+
type: ['Achievement'],
|
|
211
|
+
achievementType: 'CommunityService',
|
|
212
|
+
name: 'Community Mentoring Contribution',
|
|
213
|
+
description:
|
|
214
|
+
'A member contribution with a documented role and activity period.',
|
|
215
|
+
criteria: {
|
|
216
|
+
narrative: 'Complete the mentoring cycle and submit a reflection.',
|
|
217
|
+
},
|
|
218
|
+
creator: {
|
|
219
|
+
id: 'did:example:lc2184-practice-guild',
|
|
220
|
+
type: ['Profile'],
|
|
221
|
+
name: 'Society of Applied Practice (Fictional)',
|
|
222
|
+
url: 'https://practice-guild.example',
|
|
223
|
+
description:
|
|
224
|
+
'Fictional organization used only for LearnCard display tests.',
|
|
225
|
+
},
|
|
226
|
+
humanCode: 'SYN-PROFESSIONAL-SERVICE',
|
|
227
|
+
version: '1.0',
|
|
228
|
+
inLanguage: 'en',
|
|
229
|
+
tag: ['synthetic', 'lc-2184'],
|
|
230
|
+
resultDescription: [
|
|
231
|
+
{
|
|
232
|
+
id: 'urn:uuid:1910a1a5-d975-5ec6-926c-5157faef1672',
|
|
233
|
+
type: ['ResultDescription'],
|
|
234
|
+
name: 'Service completion',
|
|
235
|
+
resultType: 'Status',
|
|
236
|
+
},
|
|
237
|
+
],
|
|
238
|
+
alignment: [
|
|
239
|
+
{
|
|
240
|
+
type: ['Alignment'],
|
|
241
|
+
targetName: 'Facilitates peer development',
|
|
242
|
+
targetCode: 'MENTOR-101',
|
|
243
|
+
targetFramework: 'Synthetic Workplace Capability Framework',
|
|
244
|
+
targetUrl: 'https://skills.example/framework/mentor-101',
|
|
245
|
+
targetDescription:
|
|
246
|
+
'Fictional framework node for testing explicit alignment display; not a real qualification equivalence.',
|
|
247
|
+
targetType: 'CFItem',
|
|
248
|
+
},
|
|
249
|
+
],
|
|
250
|
+
},
|
|
251
|
+
activityStartDate: '2026-02-01T09:00:00Z',
|
|
252
|
+
activityEndDate: '2026-06-30T17:00:00Z',
|
|
253
|
+
role: 'Volunteer Mentor',
|
|
254
|
+
narrative:
|
|
255
|
+
'Supported a synthetic peer-learning cohort and organized four mentoring sessions.',
|
|
256
|
+
source: {
|
|
257
|
+
id: 'did:example:lc2184-practice-guild',
|
|
258
|
+
type: ['Profile'],
|
|
259
|
+
name: 'Society of Applied Practice (Fictional)',
|
|
260
|
+
url: 'https://practice-guild.example',
|
|
261
|
+
description:
|
|
262
|
+
'Fictional organization used only for LearnCard display tests.',
|
|
263
|
+
},
|
|
264
|
+
result: [
|
|
265
|
+
{
|
|
266
|
+
type: ['Result'],
|
|
267
|
+
resultDescription: 'urn:uuid:1910a1a5-d975-5ec6-926c-5157faef1672',
|
|
268
|
+
status: 'Completed',
|
|
269
|
+
},
|
|
270
|
+
],
|
|
271
|
+
},
|
|
272
|
+
awardedDate: '2026-07-03T12:00:00Z',
|
|
273
|
+
evidence: [
|
|
274
|
+
{
|
|
275
|
+
type: ['Evidence'],
|
|
276
|
+
name: 'Mentoring reflection',
|
|
277
|
+
description: 'Synthetic assessment evidence.',
|
|
278
|
+
narrative:
|
|
279
|
+
'The member reflected on four peer-learning sessions without disclosing participants.',
|
|
280
|
+
genre: 'Assessment record',
|
|
281
|
+
audience: 'Learner and authorized reviewer',
|
|
282
|
+
},
|
|
283
|
+
],
|
|
284
|
+
},
|
|
285
|
+
{
|
|
286
|
+
'@context': [
|
|
287
|
+
'https://www.w3.org/ns/credentials/v2',
|
|
288
|
+
'https://purl.imsglobal.org/spec/ob/v3p0/context-3.0.3.json',
|
|
289
|
+
],
|
|
290
|
+
id: 'urn:uuid:8c7b258d-3731-587c-8079-72b352edefe4',
|
|
291
|
+
type: ['VerifiableCredential', 'AchievementCredential'],
|
|
292
|
+
name: 'Responsible Practice Development Badge',
|
|
293
|
+
description:
|
|
294
|
+
'A professional-development activity issued by a provider distinct from the society.',
|
|
295
|
+
issuer: {
|
|
296
|
+
id: 'did:example:lc2184-cedar-training',
|
|
297
|
+
type: ['Profile'],
|
|
298
|
+
name: 'Cedar Technical Training',
|
|
299
|
+
url: 'https://cedar-training.example',
|
|
300
|
+
description:
|
|
301
|
+
'Fictional organization used only for LearnCard display tests.',
|
|
302
|
+
},
|
|
303
|
+
validFrom: '2026-05-04T12:00:00Z',
|
|
304
|
+
credentialSubject: {
|
|
305
|
+
id: 'did:example:lc2184-alex-morgan',
|
|
306
|
+
type: ['AchievementSubject'],
|
|
307
|
+
achievement: {
|
|
308
|
+
id: 'urn:uuid:34dbdf5a-f88a-5053-9dbd-9b7f0ffc82b2',
|
|
309
|
+
type: ['Achievement'],
|
|
310
|
+
achievementType: 'Badge',
|
|
311
|
+
name: 'Responsible Practice Development Badge',
|
|
312
|
+
description:
|
|
313
|
+
'A professional-development activity issued by a provider distinct from the society.',
|
|
314
|
+
criteria: {
|
|
315
|
+
narrative:
|
|
316
|
+
'Participate in at least eight hours of development activities and submit a reflection.',
|
|
317
|
+
},
|
|
318
|
+
creator: {
|
|
319
|
+
id: 'did:example:lc2184-practice-guild',
|
|
320
|
+
type: ['Profile'],
|
|
321
|
+
name: 'Society of Applied Practice (Fictional)',
|
|
322
|
+
url: 'https://practice-guild.example',
|
|
323
|
+
description:
|
|
324
|
+
'Fictional organization used only for LearnCard display tests.',
|
|
325
|
+
},
|
|
326
|
+
humanCode: 'SYN-PROFESSIONAL-DEVELOPMENT',
|
|
327
|
+
version: '1.0',
|
|
328
|
+
inLanguage: 'en',
|
|
329
|
+
tag: ['synthetic', 'lc-2184'],
|
|
330
|
+
resultDescription: [
|
|
331
|
+
{
|
|
332
|
+
id: 'urn:uuid:5763e2dd-c18e-5070-ac4d-e06fbfeffcb7',
|
|
333
|
+
type: ['ResultDescription'],
|
|
334
|
+
name: 'Professional development participation (hours)',
|
|
335
|
+
resultType: 'RawScore',
|
|
336
|
+
valueMin: '0',
|
|
337
|
+
valueMax: '12',
|
|
338
|
+
requiredValue: '8',
|
|
339
|
+
},
|
|
340
|
+
],
|
|
341
|
+
alignment: [
|
|
342
|
+
{
|
|
343
|
+
type: ['Alignment'],
|
|
344
|
+
targetName: 'Reflects on professional decisions',
|
|
345
|
+
targetCode: 'ETHICS-101',
|
|
346
|
+
targetFramework: 'Synthetic Workplace Capability Framework',
|
|
347
|
+
targetUrl: 'https://skills.example/framework/ethics-101',
|
|
348
|
+
targetDescription:
|
|
349
|
+
'Fictional framework node for testing explicit alignment display; not a real qualification equivalence.',
|
|
350
|
+
targetType: 'CFItem',
|
|
351
|
+
},
|
|
352
|
+
],
|
|
353
|
+
},
|
|
354
|
+
activityStartDate: '2026-04-01T09:00:00Z',
|
|
355
|
+
activityEndDate: '2026-04-30T17:00:00Z',
|
|
356
|
+
role: 'Participant',
|
|
357
|
+
source: {
|
|
358
|
+
id: 'did:example:lc2184-cedar-training',
|
|
359
|
+
type: ['Profile'],
|
|
360
|
+
name: 'Cedar Technical Training',
|
|
361
|
+
url: 'https://cedar-training.example',
|
|
362
|
+
description:
|
|
363
|
+
'Fictional organization used only for LearnCard display tests.',
|
|
364
|
+
},
|
|
365
|
+
result: [
|
|
366
|
+
{
|
|
367
|
+
type: ['Result'],
|
|
368
|
+
resultDescription: 'urn:uuid:5763e2dd-c18e-5070-ac4d-e06fbfeffcb7',
|
|
369
|
+
value: '10',
|
|
370
|
+
},
|
|
371
|
+
],
|
|
372
|
+
},
|
|
373
|
+
awardedDate: '2026-05-04T12:00:00Z',
|
|
374
|
+
evidence: [
|
|
375
|
+
{
|
|
376
|
+
type: ['Evidence'],
|
|
377
|
+
name: 'Professional development reflection',
|
|
378
|
+
description: 'Synthetic assessment evidence.',
|
|
379
|
+
narrative:
|
|
380
|
+
'Ten participation hours were recorded. No conversion to CEUs or regulatory credit is asserted.',
|
|
381
|
+
genre: 'Assessment record',
|
|
382
|
+
audience: 'Learner and authorized reviewer',
|
|
383
|
+
},
|
|
384
|
+
],
|
|
385
|
+
},
|
|
386
|
+
],
|
|
387
|
+
association: [
|
|
388
|
+
{
|
|
389
|
+
type: ['Association'],
|
|
390
|
+
associationType: 'isRelatedTo',
|
|
391
|
+
sourceId: 'urn:uuid:6ad7f99b-7d9d-59a8-a207-825d1d2bf57e',
|
|
392
|
+
targetId: 'urn:uuid:0d94d9bc-0354-5f50-9644-c20495128c8a',
|
|
393
|
+
},
|
|
394
|
+
{
|
|
395
|
+
type: ['Association'],
|
|
396
|
+
associationType: 'isRelatedTo',
|
|
397
|
+
sourceId: 'urn:uuid:6ad7f99b-7d9d-59a8-a207-825d1d2bf57e',
|
|
398
|
+
targetId: 'urn:uuid:34dbdf5a-f88a-5053-9dbd-9b7f0ffc82b2',
|
|
399
|
+
},
|
|
400
|
+
],
|
|
401
|
+
},
|
|
402
|
+
},
|
|
403
|
+
};
|