igrantio-dcql-student-passlisted
Install: claude install-skill L3-iGrant/skills
# DCQL: mandatory + optional groups (student transport pass)
## Scenario
A transport authority sells a discounted student pass. Mandatory: PID
(identity) AND student status (Student ID card OR Enrolment Letter).
Optional (`required: false`): local-residency proof (Utility Bill OR
Rental Agreement) for an additional discount - the wallet presents it only
if the holder has and consents to it.
**Before you build**: run the integrator intake in `igrantio-ows-overview` - environment, API key, tenancy, backend host, webhooks, frontend - one question at a time, a recommended default with each.
## The DCQL query
```json
{
"credentials": [
{
"id": "pid",
"format": "mso_mdoc",
"meta": {
"doctype_value": "urn:eu.europa.ec.eudi:pid:1"
},
"claims": [
{ "id": "full_name", "path": ["full_name"] },
{ "id": "dob", "path": ["date_of_birth"] }
],
"claim_sets": [["full_name"], ["dob"]]
},
{
"id": "student_id_card",
"format": "dc+sd-jwt",
"meta": { "vct_values": ["student_id"] },
"claims": [
{ "id": "student_id", "path": ["student_id"] },
{ "id": "university_name", "path": ["university_name"] }
],
"claim_sets": [["university_name", "student_id"]]
},
{
"id": "enrolment_letter",
"format": "dc+sd-jwt",
"meta": { "vct_values": ["employment_letter"] },
"claims": [
{ "id": "status", "path": ["status"] },
{ "id": "universit