Rights Layer Specification

Use Case: Construction (Business Licence and Building Permission)

Status: Draft v0.1.0 — This section is informative.

Scenario

Kenzo Construction Example Co. holds a construction business licence for general building works, granted as an administrative act under the construction business statute and valid for a fixed term. Here the Subject is an organization — the model does not limit Subjects to natural persons. The licence grant is the Source, the licensing agency is the granting Authority, and the Object is the category of activity covered by the licence class.

The single Right — to carry on the licensed construction business — is exercised through two Actions with distinctly different Eligibilities, each stating exactly one requirement. contract-construction-work carries two: the licence class covers the category and contract size of the work, and the licence is within its validity period. build — actually carrying out the work on a specific project — carries two others: building permission has been granted for the specific project by the competent building permission office, and a qualified site supervisor is assigned. Building permission is the outcome of a separate administrative procedure in its own institution; in the expression it appears simply as an ordinary Eligibility whose Eligibility Response is issued by the building permission office as an external issuer. The supervisor requirement is answered by a site supervision attestation issuer. How either issuer evaluates — its permit procedure, its inspection of assignments — is outside Rights Layer; only the verifiable Boolean answers enter the model.

This shows how the layer composes across authorities without merging them: the licensing agency governs the existence of the Right; the building permission office answers a per-project requirement; each remains authoritative in its own register, and the expression only references both. The example carries a full exercise chain for build: an ExerciseRequested Event, two EligibilityResponseIssued Events, a Decision established because both Responses are true (DecisionEstablished Event), the Exercise, and ExerciseStarted / ExerciseEnded Events. The Eligibilities of contract-construction-work are left unanswered, so no Decision exists for that Action.

Mapping

Rights Layer concept Domain instance
Subject Kenzo Construction Example Co., an organization
Object General building works (category of activity)
Right The right to carry on the licensed construction business
Source Administrative act: construction business licence (general building works class), fixed validity term
Authority Construction business licensing agency (grantor, regulator); municipal building permission office (Response issuer for the permission requirement)
Action contract-construction-work; build
Eligibility (contract-construction-work) Two Eligibilities, one requirement each: licence class covers the work category and contract size; licence within its validity period
Eligibility (build) Two Eligibilities, one requirement each: building permission has been granted for the specific project; a qualified site supervisor is assigned
Eligibility Response (1:1) Permission: true by the building permission office; supervisor: true by a site supervision attestation issuer. How each evaluates is outside the layer.
Evidence / Evidence Source Licence record from the construction business licence register; permit record from the building permission register, referenced by the permission Response
Decision Established for build because both Responses are verifiable and true; not established for contract-construction-work, whose Eligibilities are unanswered
Exercise / Exercise Event Carrying out the building work after the Decision was established; requested, started, ended
Event RightGranted at licensing; non-renewal at term end would surface as expiry

Chain Instantiation

flowchart TD
    S["Source<br/>Administrative act:<br/>construction business licence"] --> R["Right<br/>Right to carry on the<br/>construction business"]
    R --> A1["Action<br/>contract-construction-work"]
    R --> A2["Action<br/>build"]
    A1 --> EL0["Eligibilities<br/>licence class covers the work;<br/>licence in force<br/>(unanswered: no Decision)"]
    A2 --> EL1["Eligibility<br/>building permission granted<br/>for the project"]
    A2 --> EL2["Eligibility<br/>site supervisor assigned"]
    EL1 --> ER1["Response: true<br/>issuer: building permission office"]
    EL2 --> ER2["Response: true<br/>issuer: site supervision attester"]
    ER1 --> D["Decision<br/>established: all Responses true"]
    ER2 --> D
    D --> EX["Exercise<br/>building work on the project"]
    EX --> EE["Exercise Event<br/>requested / started / ended"]

What Rights Layer Does Not Model

Example

Machine-readable expression: construction.json