{
  "name": "Fullness Credential Schemas",
  "description": "Public JSON-LD contexts and JSON Schemas published by Fullness for its Verifiable Credentials. JSON-LD contexts are cited in the @context array of issued credentials and MUST resolve over HTTPS for spec-compliant VC verifiers to canonicalise and verify signatures. JSON Schemas are the authoritative shape contracts used by @fullness/vc-schemas and the @fullness/verifier-sdk Ajv pipeline. Live issuer identity (did:web document, JWKS, StatusList2021 credentials) is served by https://issuer.allfullness.com, not by this domain.",
  "publisher": {
    "name": "Fullness LLC-FZ",
    "domain": "allfullness.com",
    "issuer_did": "did:web:issuer.allfullness.com",
    "issuer_did_document": "https://issuer.allfullness.com/.well-known/did.json",
    "issuer_jwks": "https://issuer.allfullness.com/.well-known/jwks.json"
  },
  "governance": {
    "policy_url": "https://governance.allfullness.com",
    "policy_status": "launching-before-ga",
    "breaking_change_policy": "Breaking schema changes require a public governance proposal and a new versioned URL (e.g. /credentials/v2). Existing context URLs are immutable and forever-cached."
  },
  "schemas": [
    {
      "id": "https://schemas.allfullness.com/FullnessKycCredential/v0-preview/schema.json",
      "title": "FullnessKycCredential — minimal KYC attestation",
      "content_type": "application/schema+json",
      "stability": "provisional",
      "cache_control": "public, max-age=604800, immutable",
      "credential_types": ["FullnessKycCredential"],
      "notes": "Verified flag + ISO 3166-1 country code + validity window. Deliberately contains no PII."
    },
    {
      "id": "https://schemas.allfullness.com/FullnessFinancialDnaCredential/v0-preview/schema.json",
      "title": "FullnessFinancialDnaCredential — long-lived Financial DNA metrics",
      "content_type": "application/schema+json",
      "stability": "provisional",
      "cache_control": "public, max-age=604800, immutable",
      "credential_types": ["FullnessFinancialDnaCredential"],
      "notes": "Durable high-signal metrics computed from a subject's financial history. v0-preview; field set may change before /v1/."
    },
    {
      "id": "https://schemas.allfullness.com/FullnessScoreThresholdAttestation/v0-preview/schema.json",
      "title": "FullnessScoreThresholdAttestation — selective-disclosure threshold proof",
      "content_type": "application/schema+json",
      "stability": "provisional",
      "cache_control": "public, max-age=604800, immutable",
      "credential_types": ["FullnessScoreThresholdAttestation"],
      "notes": "Boolean attestation over `subject.<field> <operator> threshold`. BBS+/ZK selective-disclosure deferred to v1."
    }
  ],
  "contexts": [
    {
      "id": "https://schemas.allfullness.com/credentials/financial_health/v1",
      "title": "Fullness Financial DNA — personal credential class",
      "content_type": "application/ld+json",
      "stability": "stable",
      "cache_control": "public, max-age=604800, immutable",
      "credential_types": [
        "FullnessFinancialDnaCredential",
        "FullnessFinancialHealthCredential"
      ],
      "notes": "Defines two sibling credential classes served off the same context: (1) FullnessFinancialDnaCredential issued by identity-service carrying raw durable signals (savings_rate_p50_12mo, on_time_bill_payment_rate, debt_to_income_p90, …), and (2) FullnessFinancialHealthCredential issued by credit-api-service carrying a derived composite score with per-dimension breakdown (consistency, alignment, margin, stability, debt_health). Both use the same @context URL so partners load one document to verify either type."
    },
    {
      "id": "https://schemas.allfullness.com/credentials/financial_health/business/v1",
      "title": "Fullness Financial DNA — business credential class",
      "content_type": "application/ld+json",
      "stability": "stable",
      "cache_control": "public, max-age=604800, immutable",
      "credential_types": ["FullnessBusinessFinancialDnaCredential"],
      "extends": "https://schemas.allfullness.com/credentials/financial_health/v1",
      "notes": "Extends the personal context with business-tier claims (revenue band, AP/AR tenor, payroll regularity)."
    },
    {
      "id": "https://schemas.allfullness.com/proofs/threshold/v1",
      "title": "Fullness Threshold Proof — derived attestation",
      "content_type": "application/ld+json",
      "stability": "stable",
      "cache_control": "public, max-age=604800, immutable",
      "credential_types": ["FullnessThresholdProofCredential"],
      "notes": "Derived ZK-style threshold proof wrapping a score ≥ threshold attestation. Not a credential class — clients verify the JWS signature only."
    }
  ],
  "vocabulary_base": "https://schemas.allfullness.com/vocab/v1#"
}
