{
  "name": "Obligation-First",
  "description": "An open upper schema for normative content (laws, cases, joint interpretations) bound to Semantic Arts gist.",
  "version": "v0.6.3",
  "url": "https://obligationfirst.org/",
  "publisher": {
    "name": "PAICE.work PBC",
    "url": "https://paice.work/"
  },
  "license": {
    "spec": "https://creativecommons.org/licenses/by/4.0/",
    "code": "https://www.apache.org/licenses/LICENSE-2.0"
  },
  "endpoints": {
    "context": "https://obligationfirst.org/v1/context.jsonld",
    "schemas": {
      "common": "https://obligationfirst.org/v1/schema/common.schema.json",
      "authority": "https://obligationfirst.org/v1/schema/authority.schema.json",
      "jurisdiction": "https://obligationfirst.org/v1/schema/jurisdiction.schema.json",
      "party": "https://obligationfirst.org/v1/schema/party.schema.json",
      "instrument": "https://obligationfirst.org/v1/schema/instrument.schema.json",
      "term": "https://obligationfirst.org/v1/schema/term.schema.json",
      "obligation": "https://obligationfirst.org/v1/schema/obligation.schema.json",
      "obligation_category": "https://obligationfirst.org/v1/schema/obligation-category.schema.json",
      "proceeding": "https://obligationfirst.org/v1/schema/proceeding.schema.json",
      "allegation": "https://obligationfirst.org/v1/schema/allegation.schema.json",
      "determination": "https://obligationfirst.org/v1/schema/determination.schema.json",
      "tombstone": "https://obligationfirst.org/v1/schema/tombstone.schema.json",
      "executable_encoding": "https://obligationfirst.org/v1/schema/executable-encoding.schema.json",
      "naming_profile": "https://obligationfirst.org/v1/schema/naming-profile.schema.json"
    },
    "assistant_guide": "https://obligationfirst.org/.well-known/assistant-guide.txt",
    "assistant_guide_manifest": "https://obligationfirst.org/.well-known/assistant-guide-manifest.txt",
    "spec": "https://github.com/snapsynapse/obligation-first/blob/main/PROTOCOL.md",
    "llms_txt": "https://obligationfirst.org/llms.txt",
    "release_package": "https://obligationfirst.org/releases/v0.6.3/",
    "sitemap": "https://obligationfirst.org/sitemap.xml",
    "repo": "https://github.com/snapsynapse/obligation-first"
  },
  "capabilities": [
    "json-ld-context-resolution",
    "json-schema-validation",
    "graph-coherence-validation",
    "v0.5-to-v0.6-migration",
    "guidecheck-assistant-guide",
    "gist-binding",
    "legalruleml-crosswalk",
    "akoma-ntoso-iri-compatibility",
    "eli-ecli-iri-compatibility"
  ],
  "concepts": {
    "spine": {
      "Authority": "https://obligationfirst.org/v1/schema/authority.schema.json",
      "Instrument": "https://obligationfirst.org/v1/schema/instrument.schema.json",
      "Term": "https://obligationfirst.org/v1/schema/term.schema.json",
      "Obligation": "https://obligationfirst.org/v1/schema/obligation.schema.json"
    },
    "category_layer": {
      "ObligationCategory": "https://obligationfirst.org/v1/schema/obligation-category.schema.json"
    },
    "supporting_records": {
      "Jurisdiction": "https://obligationfirst.org/v1/schema/jurisdiction.schema.json",
      "Party": "https://obligationfirst.org/v1/schema/party.schema.json",
      "Tombstone": "https://obligationfirst.org/v1/schema/tombstone.schema.json"
    },
    "proceeding_strand": {
      "Proceeding": "https://obligationfirst.org/v1/schema/proceeding.schema.json",
      "Allegation": "https://obligationfirst.org/v1/schema/allegation.schema.json",
      "Determination": "https://obligationfirst.org/v1/schema/determination.schema.json"
    },
    "deontic_quartet": ["Requirement", "Restriction", "Permission", "Reparation"],
    "vocabulary_prefix": "https://w3id.org/of/v1/ is the planned permanent vocabulary prefix. It will resolve to https://obligationfirst.org/v1/ once the w3id.org redirect is filed. Until then, https://obligationfirst.org/v1/ is the live CI-verified resolution target and records should use @context: https://obligationfirst.org/v1/context.jsonld.",
    "id_federation": "Record @id values are adopter-local, opaque, and permanent. An @id identifies the adopter's record about a legal entity, not the entity's canonical external identifier. Obligation-First does not prescribe slug grammar; each adopter declares its own. A namespace reorganization MUST keep the old @id resolving via HTTP 301 (W3C 'Cool URIs Don't Change'); a rename is therefore not a breaking change. Added in v0.3.",
    "identifier_crosswalks": "Standard identifiers ride as typed crosswalks on the record, never as the @id. Cross-adopter joins key on crosswalks, not slugs. Matrix (RFC 2119, conditional on coverage): ELI (eli_uri, MUST for instruments where the jurisdiction issues ELIs), ECLI / neutral_citation (MUST for citable court decisions), Akoma Ntoso (akn_uri, SHOULD/MAY where an AKN representation exists), urn:lex (MAY, fallback where no ELI), Wikidata QID (sameAs, SHOULD for authorities with an entry), EuroVoc concept (sameAs/exactMatch, SHOULD where the subject has a concept). Added in v0.3.",
    "naming_profiles": "Each adopter publishes a naming profile, a JSON-LD of:NamingProfile document served at /.well-known/obligation-first-naming-profile.jsonld (application/ld+json) and validated by https://obligationfirst.org/v1/schema/naming-profile.schema.json. It declares, per entity type, VoID uriSpace and uriRegexPattern plus an RFC 6570 uriTemplate and a list of supplied crosswalks. A flat text/plain provenance sidecar at /.well-known/obligation-first-naming-profile-manifest.txt carries profile-sha256 and profile-bytes. The profile is adopter-owned and descriptive of what the adopter actually mints; Obligation-First consumes and validates against it, and never prescribes the slug grammar. Required to be 'bound' (Level 2). Concept added in v0.3; format defined in v0.4.",
    "jurisdiction": "of:Jurisdiction represents legal competence, not geography. territorial_scope uses geographic identifiers such as ISO 3166 where applicable; institutional_scope names organizations, treaty systems, standards bodies, or legal orders. Legacy gist:Jurisdiction plus ref remains valid during the v0.5 migration window.",
    "reparation_gist_binding": "gist:Requirement (secondary duty) + gist:Intention (declared intent on creating Term) + gist:Event (actuated reparation, via proceeding strand) — v0.2 binding-only refinement per Semantic Arts feedback; of:Reparation class preserved",
    "allegation_gist_binding": "gist:Content (assertion text) + gist:Intention (only when the claim is itself intent-bearing — libel, fraud, defamation). gist defines no gist:Statement class. Refined in v0.2 per Semantic Arts feedback.",
    "relations": {
      "issuedBy": "Instrument | Determination → Authority[]; issuer or promulgator only",
      "heardBy": "Proceeding → Authority[]",
      "administeredBy": "Instrument → Authority[]",
      "regulatedBy": "Instrument → Authority[]",
      "enforcedBy": "Instrument → Authority[]",
      "hasTerm": "Instrument → Term[]",
      "creates": "Term → Obligation[]",
      "hasAllegation": "Proceeding → Allegation[]",
      "hasDetermination": "Proceeding → Determination[]",
      "decides": "Determination → Allegation[]",
      "recognizes": "Determination → Obligation[]",
      "imposes": "Determination → Obligation[]",
      "isCategorizedBy": "Obligation → ObligationCategory[]; exactMatch is not membership",
      "constrains": "Determination → Instrument | Term | Obligation | Determination",
      "resulting_instrument": "Determination → Instrument[]",
      "anchors": "Determination | Term | Obligation → Obligation | Term",
      "defeats": "Term → Term[] — Term-level override, LegalRuleML §7.4 (general / fallback)",
      "rebuts": "Term → Term[] — subproperty of defeats; opposite-conclusion case (LegalRuleML §7.4). Added in v0.2.",
      "undercuts": "Term → Term[] — subproperty of defeats; denies-applicability case (LegalRuleML §7.4). Added in v0.2.",
      "triggers_on_violation_of": "Reparation → Obligation — Reparation-side assertion",
      "violationOf": "Reparation → Obligation — inverse of triggers_on_violation_of; Obligation-side assertion. Added in v0.2.",
      "supersedes": "Instrument → Instrument[] — post-enactment whole-Instrument replacement",
      "wouldSupersede": "Instrument → Instrument[] — subjunctive form for proposed Instruments",
      "executableEncoding": "Term | Obligation → typed reference (Catala / Blawx / OpenFisca / others)"
    }
  },
  "adopters": [
    { "name": "EveryAILaw", "url": "https://everyailaw.com/", "status": "live", "binding": "statutory and regulatory obligations" },
    { "name": "PubLedge", "url": "https://publedge.org/", "status": "live", "binding": "joint-interpretation instruments, terms, obligations, determinations" },
    { "name": "AI Incident Law", "url": "https://aiincidentlaw.org/", "status": "live", "binding": "proceedings, allegations, determinations, authorities" }
  ]
}
