Namespace id.entity.ext.e3@0.1.0

Compatible with Concerto versions ^3.0.0. Has 7 declarations.

Concerto JSON AST PlantUML XML Schema Typescript C# OData JSON Schema GraphQL Java Go Avro Markdown OpenAPI Protobuf Mermaid

Declared Types

      
      import id.entity.ext.e3@0.1.0.AdmissionRule from /ext-e3@0.1.0.cto
      import id.entity.ext.e3@0.1.0.OpenAdmission from /ext-e3@0.1.0.cto
      import id.entity.ext.e3@0.1.0.AdmissionByApproval from /ext-e3@0.1.0.cto
      import id.entity.ext.e3@0.1.0.AdmissionByInvitation from /ext-e3@0.1.0.cto
      import id.entity.ext.e3@0.1.0.ClosedAdmission from /ext-e3@0.1.0.cto
      import id.entity.ext.e3@0.1.0.ExpulsionRule from /ext-e3@0.1.0.cto
      import id.entity.ext.e3@0.1.0.AdmissionExtension from /ext-e3@0.1.0.cto
      
      

Dependencies

Source

    /*
 * E3 - Admission and Membership
 *
 * How a person becomes, remains, and stops being a Constituent beyond the
 * Core's consent floor (2.2) and withdrawal capacity (2.4): admission
 * procedure, eligibility, expulsion. Lean but real per the MVP cut.
 *
 * provenance:
 *   source: universal-constitution v2-minimal-core-study.md (Extensions register)
 *   licence: Apache-2.0
 */
concerto version "^3.0.0"
namespace id.entity.ext.e3@0.1.0

import id.entity.core@2.2.0.{Extension, DecisionRule} from https://models.entity.id/core@2.2.0.cto
/** How admission is decided. */
abstract concept AdmissionRule {
}

/** Anyone meeting the eligibility criteria may join by their own act. */
concept OpenAdmission extends AdmissionRule {
}

/** Admission requires approval under a stated rule. */
concept AdmissionByApproval extends AdmissionRule {
  o DecisionRule approvedBy
}

/** Admission only by invitation of an existing Constituent or organ. */
concept AdmissionByInvitation extends AdmissionRule {
  o String invitedBy optional
}

/** No new Constituents are admitted. */
concept ClosedAdmission extends AdmissionRule {
}

/** Grounds and procedure for removing a Constituent. */
concept ExpulsionRule {
  o String[] grounds
  o DecisionRule decidedBy
}

/**
 * E3 Admission and Membership - attached to a Constitution via clause 6.2.
 */
concept AdmissionExtension extends Extension {
  o AdmissionRule admission
  o String[] eligibilityCriteria optional
  o ExpulsionRule expulsion optional
  o Integer noticeDaysForWithdrawal range=[0,] optional
}