openapi: 3.1.1
info:
  title: SkillEntry — Shared Type
  version: 2.1.0
  description: 'Shared type representing a single skill or credential held by a candidate. Supports graceful degradation: a SkillEntry is valid with no VC attached (self-declared), and enriches progressively as VC attestation becomes available. Used by CandidateProfileResourceAttributes.

    '
  license:
    name: CC-BY-NC-SA 4.0 International
  contact:
    name: Beckn Labs
    url: https://beckn.io
components:
  schemas:
    SkillEntry:
      x-iri: https://schema.nfh.global/SkillEntry/v2.1
      type: object
      description: 'A single skill, qualification, or credential held by a candidate. The attested flag and proof_request_url are optional — allowing the schema to function in early-stage ecosystems where VC infrastructure is not yet universal. As VCs become available for specific skills, the proof_request_url can be populated without any schema change.

        '
      required:
      - category
      - subtype
      - attested
      properties:
        category:
          type: string
          description: Broad class of the credential or skill held.
          x-jsonld-id: se:category
          enum:
          - SKILL
          - DEGREE
          - EXPERIENCE
          - LICENSE
          - CERTIFICATION
          - ACCREDITATION
          - AFFILIATION
          - OTHER
        subtype:
          type: string
          description: 'Specific skill or credential. Examples: "AWS_SAA", "BTECH_CS", "LMV_LICENSE", "Java_SE_11", "CNC_Operator_Level2".

            '
          x-jsonld-id: se:subtype
        level:
          type: string
          description: 'Optional proficiency or qualification level. Examples: "BEGINNER", "PROFESSIONAL", "ADVANCED", "3_YEARS_EXP", "NQF_Level_4".

            '
          x-jsonld-id: se:level
        attested:
          type: boolean
          description: 'Whether this skill entry is backed by a verifiable credential (VC). false = self-declared (no VC yet); true = VC exists and is resolvable via proof_request_url. Employers can discover self-declared skills but know they are unverified.

            '
          x-jsonld-id: se:attested
        proof_request_url:
          type: string
          format: uri
          description: 'URL of the DeDi proof-request endpoint scoped to this specific credential. Only present when attested = true. An employer BAP can call this endpoint to trigger a Verifiable Presentation (VP) request. The VC payload itself never leaves the holder''s wallet — only a signed verification response is returned by the orchestrator. Example: "https://dedi.example.net/proof-request/did:ex:123/skill/AWS_SAA"

            '
          x-jsonld-id: se:proofRequestUrl
