{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://lwilko.com/schemas/technocracy-case-study/v1.json",
  "title": "Technocracy Case Study",
  "description": "A structured record of a single technocratic, cybernetic or high-modernist governance project, designed for comparison across cases rather than narrative description. Field groups map to the analytic frame: the direction of legibility, Scott's four conditions, requisite variety, feedback integrity, and accountability. Every assessed field carries its own evidence string so that a claim can be traced to a source rather than asserted.",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "id",
    "name",
    "period",
    "jurisdiction",
    "domain",
    "wave",
    "legibility",
    "outcome",
    "sources"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "Stable slug. Convention: lowercase, hyphenated, jurisdiction-prefixed where a name is ambiguous. Example: 'cl-cybersyn', 'nl-toeslagenaffaire'.",
      "pattern": "^[a-z0-9]+(-[a-z0-9]+)*$"
    },
    "name": {
      "type": "string",
      "description": "Common English name of the project or episode."
    },
    "aliases": {
      "type": "array",
      "description": "Other names the case is known by, including the local-language name.",
      "items": {
        "type": "string"
      },
      "uniqueItems": true
    },
    "summary": {
      "type": "string",
      "description": "Two or three sentences. What was attempted, by whom, and what happened. Written to be readable on its own.",
      "maxLength": 800
    },
    "period": {
      "$ref": "#/$defs/period"
    },
    "jurisdiction": {
      "$ref": "#/$defs/jurisdiction"
    },
    "domain": {
      "type": "array",
      "description": "Policy domains the project operated in. Multiple is normal.",
      "minItems": 1,
      "uniqueItems": true,
      "items": {
        "$ref": "#/$defs/domain"
      }
    },
    "wave": {
      "$ref": "#/$defs/wave"
    },
    "actors": {
      "type": "array",
      "description": "Named individuals and institutions. Keep to those who materially shaped the project or its failure.",
      "items": {
        "$ref": "#/$defs/actor"
      }
    },
    "instruments": {
      "type": "array",
      "description": "The technical and administrative apparatus actually deployed. Distinguishes what was built from what was promised.",
      "uniqueItems": true,
      "items": {
        "$ref": "#/$defs/instrument"
      }
    },
    "legibility": {
      "$ref": "#/$defs/legibility"
    },
    "scott_conditions": {
      "$ref": "#/$defs/scottConditions"
    },
    "requisite_variety": {
      "$ref": "#/$defs/requisiteVariety"
    },
    "feedback": {
      "$ref": "#/$defs/feedback"
    },
    "accountability": {
      "$ref": "#/$defs/accountability"
    },
    "outcome": {
      "$ref": "#/$defs/outcome"
    },
    "termination": {
      "$ref": "#/$defs/termination"
    },
    "evidence_quality": {
      "$ref": "#/$defs/evidenceQuality"
    },
    "contested_claims": {
      "type": "array",
      "description": "Points on which credible scholars disagree. Recording these prevents the dataset from flattening into a thesis-confirming list.",
      "items": {
        "$ref": "#/$defs/contestedClaim"
      }
    },
    "related_cases": {
      "type": "array",
      "description": "Ids of other cases in this dataset, with the nature of the relationship.",
      "items": {
        "$ref": "#/$defs/relatedCase"
      }
    },
    "sources": {
      "type": "array",
      "description": "Where the record's claims come from. At least one required.",
      "minItems": 1,
      "items": {
        "$ref": "#/$defs/source"
      }
    },
    "essay_use": {
      "$ref": "#/$defs/essayUse"
    },
    "tags": {
      "type": "array",
      "description": "Free-form tags for cross-cutting themes not captured by the controlled vocabularies.",
      "items": {
        "type": "string"
      },
      "uniqueItems": true
    },
    "record_meta": {
      "$ref": "#/$defs/recordMeta"
    }
  },
  "$defs": {
    "assessment": {
      "type": "string",
      "description": "Four-valued judgement. 'unknown' is a legitimate answer and should be used rather than guessing.",
      "enum": [
        "yes",
        "partial",
        "no",
        "unknown"
      ]
    },
    "confidence": {
      "type": "string",
      "description": "How much weight the sources actually bear for this judgement.",
      "enum": [
        "high",
        "medium",
        "low"
      ]
    },
    "judgement": {
      "type": "object",
      "description": "An assessed value plus the evidence and confidence behind it. Used wherever the record makes an analytic claim rather than recording a fact.",
      "additionalProperties": false,
      "required": [
        "value"
      ],
      "properties": {
        "value": {
          "$ref": "#/$defs/assessment"
        },
        "evidence": {
          "type": "string",
          "description": "One or two sentences of specific evidence. Not a restatement of the value."
        },
        "confidence": {
          "$ref": "#/$defs/confidence"
        },
        "source_refs": {
          "type": "array",
          "description": "Indices into the record's own sources array, or work_id slugs.",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "period": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "start_year"
      ],
      "properties": {
        "start_year": {
          "type": "integer",
          "minimum": -3500,
          "maximum": 2100
        },
        "end_year": {
          "type": [
            "integer",
            "null"
          ],
          "minimum": -3500,
          "maximum": 2100,
          "description": "Null where the case is ongoing."
        },
        "ongoing": {
          "type": "boolean",
          "default": false
        },
        "precision": {
          "type": "string",
          "description": "How firm the dating is. Long-running administrative practices rarely have clean boundaries.",
          "enum": [
            "exact",
            "approximate",
            "contested"
          ]
        },
        "notes": {
          "type": "string"
        }
      }
    },
    "jurisdiction": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "countries",
        "level"
      ],
      "properties": {
        "countries": {
          "type": "array",
          "description": "ISO 3166-1 alpha-2 codes. Use the code for the state as it existed at the time and record historical entities in 'polity'.",
          "minItems": 1,
          "items": {
            "type": "string",
            "pattern": "^[A-Z]{2}$"
          }
        },
        "polity": {
          "type": "string",
          "description": "The historical state or institution, where it differs from the modern country. Example: 'Union of Soviet Socialist Republics', 'Prussia', 'European Commission'."
        },
        "level": {
          "type": "string",
          "enum": [
            "supranational",
            "national",
            "subnational",
            "municipal",
            "colonial",
            "non-state"
          ]
        },
        "regime_type": {
          "type": "string",
          "description": "Regime at the time of the project. Material to Scott's third condition.",
          "enum": [
            "liberal-democratic",
            "electoral-democratic",
            "authoritarian",
            "totalitarian",
            "colonial",
            "transitional",
            "other"
          ]
        }
      }
    },
    "domain": {
      "type": "string",
      "enum": [
        "agriculture",
        "forestry",
        "urban-planning",
        "transport",
        "energy",
        "housing",
        "welfare-benefits",
        "taxation",
        "health",
        "population-policy",
        "education",
        "labour",
        "economic-planning",
        "industrial-policy",
        "legal-system",
        "legislation",
        "identity-and-registration",
        "elections",
        "policing-and-justice",
        "defence-and-security",
        "public-administration",
        "environment"
      ]
    },
    "wave": {
      "type": "string",
      "description": "Which historical wave of technocratic thought the case belongs to. Cases may sit awkwardly; pick the dominant one and explain in notes.",
      "enum": [
        "pre-modern-statecraft",
        "saint-simonian",
        "scientific-management",
        "interwar-technocracy",
        "high-modernist",
        "cybernetic",
        "new-public-management",
        "digital-government",
        "ai-age"
      ]
    },
    "actor": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "name",
        "role"
      ],
      "properties": {
        "name": {
          "type": "string"
        },
        "role": {
          "type": "string",
          "enum": [
            "political-sponsor",
            "chief-designer",
            "implementing-agency",
            "technical-contractor",
            "external-consultant",
            "affected-population",
            "internal-dissenter",
            "external-critic",
            "oversight-body",
            "beneficiary"
          ]
        },
        "affiliation": {
          "type": "string"
        },
        "profession": {
          "type": "string",
          "description": "Relevant to Wang's engineer-versus-lawyer thesis. Record the training, not the job title.",
          "enum": [
            "engineer",
            "lawyer",
            "economist",
            "scientist",
            "physician",
            "military",
            "career-administrator",
            "politician",
            "technologist",
            "academic",
            "other",
            "unknown"
          ]
        },
        "notes": {
          "type": "string"
        }
      }
    },
    "instrument": {
      "type": "string",
      "description": "Apparatus actually deployed, not merely proposed.",
      "enum": [
        "census",
        "cadastral-survey",
        "standardised-measures",
        "surname-and-registration",
        "statistical-model",
        "machine-learning-classifier",
        "large-language-model",
        "real-time-telemetry",
        "dashboard-or-control-room",
        "national-register",
        "digital-identity",
        "open-api-or-protocol",
        "data-exchange-layer",
        "structured-legal-corpus",
        "quotas-and-targets",
        "energy-accounting",
        "master-plan",
        "compulsory-resettlement",
        "automated-decision-making",
        "risk-scoring",
        "biometrics",
        "surveillance-network"
      ]
    },
    "legibility": {
      "type": "object",
      "description": "The central analytic axis. Distinguishes projects that made rules and institutions readable from projects that made people readable.",
      "additionalProperties": false,
      "required": [
        "direction",
        "object_of_optimisation"
      ],
      "properties": {
        "direction": {
          "type": "string",
          "description": "Who is made readable to whom. 'citizen-to-state' is the classic Scott case; 'state-to-citizen' is codification and open law; 'state-to-itself' is internal administrative reform.",
          "enum": [
            "citizen-to-state",
            "state-to-citizen",
            "state-to-itself",
            "bidirectional",
            "state-to-market",
            "market-to-state"
          ]
        },
        "object_of_optimisation": {
          "type": "string",
          "description": "What the project was actually trying to optimise. The hypothesis under test is that optimising people fails and optimising rules and processes does not.",
          "enum": [
            "people",
            "populations",
            "processes",
            "rules",
            "resources",
            "territory",
            "information-flow"
          ]
        },
        "reciprocity": {
          "allOf": [
            {
              "$ref": "#/$defs/judgement"
            }
          ],
          "description": "Could the governed inspect, contest or audit the system that read them?"
        },
        "consent": {
          "allOf": [
            {
              "$ref": "#/$defs/judgement"
            }
          ],
          "description": "Was participation meaningfully voluntary, or was enrolment compulsory in practice?"
        },
        "metis_displaced": {
          "allOf": [
            {
              "$ref": "#/$defs/judgement"
            }
          ],
          "description": "Did the simplification destroy local practical knowledge that had been load-bearing?"
        },
        "notes": {
          "type": "string"
        }
      }
    },
    "scottConditions": {
      "type": "object",
      "description": "Scott's four coinciding conditions for high-modernist catastrophe. Recording each separately is the point: cases that meet one or two and still fail, or meet all four and succeed, are the interesting ones.",
      "additionalProperties": false,
      "properties": {
        "administrative_simplification": {
          "$ref": "#/$defs/judgement"
        },
        "high_modernist_ideology": {
          "$ref": "#/$defs/judgement"
        },
        "authoritarian_capacity": {
          "$ref": "#/$defs/judgement"
        },
        "prostrate_civil_society": {
          "$ref": "#/$defs/judgement"
        },
        "conditions_met_count": {
          "type": "integer",
          "description": "Count of the four scored 'yes'. Derived, but stored for querying.",
          "minimum": 0,
          "maximum": 4
        },
        "notes": {
          "type": "string"
        }
      }
    },
    "requisiteVariety": {
      "type": "object",
      "description": "Ashby's law applied to the case. Did the regulator have enough variety to control the regulated system, and if not, how was the shortfall handled?",
      "additionalProperties": false,
      "properties": {
        "regulator_variety_adequate": {
          "$ref": "#/$defs/judgement"
        },
        "attenuation_strategy": {
          "type": "array",
          "description": "How the flood of information was reduced to something manageable. Davies' firehose problem.",
          "uniqueItems": true,
          "items": {
            "type": "string",
            "enum": [
              "aggregation-to-indicators",
              "sampling",
              "delegation-to-local-units",
              "categorical-simplification",
              "exception-reporting",
              "prioritisation-by-risk-score",
              "automation",
              "ignored-the-problem",
              "unknown"
            ]
          }
        },
        "information_lost": {
          "type": "string",
          "description": "What the attenuation threw away, and whether it turned out to matter."
        },
        "notes": {
          "type": "string"
        }
      }
    },
    "feedback": {
      "type": "object",
      "description": "Whether the system could learn it was wrong. On the working hypothesis, this is the variable that actually separates success from catastrophe.",
      "additionalProperties": false,
      "properties": {
        "channels_present": {
          "type": "array",
          "uniqueItems": true,
          "items": {
            "type": "string",
            "enum": [
              "elections",
              "courts-and-judicial-review",
              "free-press",
              "parliamentary-scrutiny",
              "internal-audit",
              "front-line-staff-escalation",
              "complaints-and-appeals",
              "market-prices",
              "independent-research",
              "protest-and-industrial-action",
              "none"
            ]
          }
        },
        "channels_severed": {
          "type": "array",
          "description": "Channels that existed on paper but were suppressed, ignored or defunded.",
          "uniqueItems": true,
          "items": {
            "type": "string"
          }
        },
        "error_signal_reached_decision_makers": {
          "$ref": "#/$defs/judgement"
        },
        "error_correction_latency": {
          "type": "string",
          "description": "How long between the first credible warning and any corrective action.",
          "enum": [
            "days",
            "months",
            "1-3-years",
            "3-10-years",
            "over-10-years",
            "never",
            "unknown"
          ]
        },
        "warnings_ignored": {
          "type": "array",
          "description": "Specific documented warnings that were available and disregarded. The most damning field in the schema.",
          "items": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "description"
            ],
            "properties": {
              "year": {
                "type": "integer"
              },
              "source_of_warning": {
                "type": "string"
              },
              "description": {
                "type": "string"
              },
              "response": {
                "type": "string"
              }
            }
          }
        },
        "notes": {
          "type": "string"
        }
      }
    },
    "accountability": {
      "type": "object",
      "description": "Who could be held responsible, and whether anyone actually was. Includes the fields needed to test whether AI-age cases differ structurally from their predecessors.",
      "additionalProperties": false,
      "properties": {
        "locus": {
          "type": "array",
          "description": "Where responsibility formally sat.",
          "uniqueItems": true,
          "items": {
            "type": "string",
            "enum": [
              "named-minister",
              "agency-head",
              "civil-service-collective",
              "private-contractor",
              "external-consultant",
              "software-vendor",
              "model-provider",
              "diffuse-or-unassigned",
              "the-system-itself"
            ]
          }
        },
        "persistent_identity_present": {
          "allOf": [
            {
              "$ref": "#/$defs/judgement"
            }
          ],
          "description": "Was there a durable entity for consequences to attach to? Distinguishes classical technocracy from cases where the deciding system was updated, forked or replaced between decision and outcome."
        },
        "sanction_applied": {
          "allOf": [
            {
              "$ref": "#/$defs/judgement"
            }
          ],
          "description": "Did anything actually happen to anyone: resignation, prosecution, compensation, institutional reform?"
        },
        "sanction_detail": {
          "type": "string"
        },
        "accountability_sink": {
          "allOf": [
            {
              "$ref": "#/$defs/judgement"
            }
          ],
          "description": "Davies' term. Was a mechanism interposed that absorbed responsibility so that no human could be answerable for the decision?"
        },
        "redress_for_harmed": {
          "allOf": [
            {
              "$ref": "#/$defs/judgement"
            }
          ],
          "description": "Was compensation or remedy delivered to those harmed, as distinct from punishment of those responsible?"
        },
        "notes": {
          "type": "string"
        }
      }
    },
    "outcome": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "verdict"
      ],
      "properties": {
        "verdict": {
          "type": "string",
          "enum": [
            "succeeded",
            "partial-success",
            "failed",
            "abandoned-before-test",
            "catastrophic",
            "ongoing",
            "contested"
          ]
        },
        "verdict_reasoning": {
          "type": "string",
          "description": "Against whose stated objectives, and by what measure. A project can succeed on its own terms and be a catastrophe."
        },
        "benefits": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/effect"
          }
        },
        "harms": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/effect"
          }
        },
        "reversibility": {
          "allOf": [
            {
              "$ref": "#/$defs/judgement"
            }
          ],
          "description": "Scott's most-neglected recommendation. Could the project have been undone once it was seen to be failing?"
        },
        "counterfactual_strength": {
          "type": "string",
          "description": "How confidently can we say the alternative would have been better? Guards against the Tauger objection that Scott catalogues failures without pricing their counterfactuals.",
          "enum": [
            "strong",
            "moderate",
            "weak",
            "unassessed"
          ]
        },
        "counterfactual_notes": {
          "type": "string"
        },
        "longevity_years": {
          "type": [
            "integer",
            "null"
          ],
          "description": "How long the project or its institutional residue survived. Useful for the argument that protocols outlast plans."
        }
      }
    },
    "effect": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "description"
      ],
      "properties": {
        "description": {
          "type": "string"
        },
        "affected_group": {
          "type": "string"
        },
        "magnitude": {
          "type": "string",
          "description": "Quantified where possible. Prefer '20,000 families wrongly accused' to 'widespread harm'."
        },
        "type": {
          "type": "string",
          "enum": [
            "economic",
            "mortality",
            "health",
            "liberty",
            "property",
            "discrimination",
            "environmental",
            "institutional-trust",
            "service-delivery",
            "state-capacity",
            "other"
          ]
        },
        "contested": {
          "type": "boolean",
          "default": false
        }
      }
    },
    "termination": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "mode": {
          "type": "string",
          "enum": [
            "completed-as-planned",
            "quietly-wound-down",
            "sunset-by-design",
            "cancelled-by-successor-government",
            "struck-down-by-court",
            "collapsed-under-scandal",
            "ended-by-coup-or-war",
            "absorbed-into-successor-system",
            "still-running",
            "unknown"
          ]
        },
        "year": {
          "type": "integer"
        },
        "trigger": {
          "type": "string"
        },
        "continued_covertly": {
          "allOf": [
            {
              "$ref": "#/$defs/judgement"
            }
          ],
          "description": "Whether the apparatus survived its formal abolition. Several welfare-scoring cases did."
        },
        "notes": {
          "type": "string"
        }
      }
    },
    "evidenceQuality": {
      "type": "object",
      "description": "How much the record should be trusted. Included because the standing critique of this whole literature is that it runs on vibes.",
      "additionalProperties": false,
      "properties": {
        "level": {
          "type": "string",
          "enum": [
            "official-inquiry",
            "peer-reviewed-scholarship",
            "archival-primary",
            "investigative-journalism",
            "participant-account",
            "secondary-synthesis",
            "contested-or-thin"
          ]
        },
        "quantitative_data_available": {
          "type": "boolean"
        },
        "participant_accounts_available": {
          "type": "boolean"
        },
        "known_gaps": {
          "type": "string"
        },
        "notes": {
          "type": "string"
        }
      }
    },
    "contestedClaim": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "claim"
      ],
      "properties": {
        "claim": {
          "type": "string"
        },
        "asserted_by": {
          "type": "string"
        },
        "disputed_by": {
          "type": "string"
        },
        "state_of_debate": {
          "type": "string",
          "enum": [
            "settled-against",
            "settled-for",
            "genuinely-open",
            "ideologically-split"
          ]
        },
        "notes": {
          "type": "string"
        }
      }
    },
    "relatedCase": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "case_id",
        "relationship"
      ],
      "properties": {
        "case_id": {
          "type": "string",
          "pattern": "^[a-z0-9]+(-[a-z0-9]+)*$"
        },
        "relationship": {
          "type": "string",
          "enum": [
            "direct-predecessor",
            "direct-successor",
            "contemporaneous-parallel",
            "explicit-model-for",
            "explicit-reaction-against",
            "same-instrument-different-outcome",
            "same-outcome-different-instrument",
            "control-case"
          ]
        },
        "notes": {
          "type": "string"
        }
      }
    },
    "source": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "citation",
        "type"
      ],
      "properties": {
        "work_id": {
          "type": "string",
          "description": "Slug linking to the reading list, where the source is on it. Convention: author-surname-short-title. Example: 'medina-cybernetic-revolutionaries'.",
          "pattern": "^[a-z0-9]+(-[a-z0-9]+)*$"
        },
        "citation": {
          "type": "string"
        },
        "year": {
          "type": "integer"
        },
        "type": {
          "type": "string",
          "enum": [
            "primary-source",
            "official-inquiry",
            "government-publication",
            "monograph",
            "journal-article",
            "journalism",
            "investigation",
            "dataset",
            "court-judgment",
            "archival",
            "web"
          ]
        },
        "locator": {
          "type": "string",
          "description": "Pages, chapter, section or paragraph. Precise enough to check."
        },
        "url": {
          "type": "string",
          "format": "uri"
        },
        "stance": {
          "type": "string",
          "description": "Where the source stands, so the record does not silently inherit one perspective.",
          "enum": [
            "sympathetic",
            "critical",
            "neutral-scholarly",
            "official",
            "participant",
            "unknown"
          ]
        }
      }
    },
    "essayUse": {
      "type": "object",
      "description": "Working notes for drafting. Kept separate from the analytic record so the dataset stays reusable if the essay changes shape.",
      "additionalProperties": false,
      "properties": {
        "priority": {
          "type": "string",
          "enum": [
            "load-bearing",
            "supporting",
            "colour",
            "cut-candidate"
          ]
        },
        "argument_served": {
          "type": "array",
          "description": "Which thread of the essay this case is doing work for.",
          "items": {
            "type": "string"
          }
        },
        "concrete_image": {
          "type": "string",
          "description": "The single physical detail that would carry the abstraction for a reader. The ops room chair, the telex machine, the letter that arrived."
        },
        "quotable": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "text"
            ],
            "properties": {
              "text": {
                "type": "string"
              },
              "speaker": {
                "type": "string"
              },
              "source_ref": {
                "type": "string"
              }
            }
          }
        },
        "risk": {
          "type": "string",
          "description": "Why this case might backfire in the essay: overused, contested, or too easily read as endorsing something you do not endorse."
        },
        "notes": {
          "type": "string"
        }
      }
    },
    "recordMeta": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "schema_version": {
          "type": "string",
          "const": "1.0.0"
        },
        "created": {
          "type": "string",
          "format": "date"
        },
        "updated": {
          "type": "string",
          "format": "date"
        },
        "completeness": {
          "type": "string",
          "enum": [
            "stub",
            "partial",
            "researched",
            "verified"
          ]
        },
        "author": {
          "type": "string"
        }
      }
    }
  }
}
