Minimal Charter 03

Author: Entity.ID

minimal-charter-03@1.0.0 Contract ^2.0.0 fe499b17309cc47bcb71abb76015b239febfd70ee199479d4930c1fcf1c2a387

Edition 03: the recital, identity, purpose and adoption, with no registry named anywhere.

Download Archive Download Compiled Archive Open in Template Playground Open in VSCode Web

Minimal Charter 03

Edition 03: the recital, identity, purpose and adoption, with no registry named anywhere. A charter drafted before registration should not claim to be on a registry it has not joined, so the Open Registry and its Rules move out to the open-registry clause, adopted at the moment the Entity registers. The same document therefore reads correctly off the Registry and on it. The identifier stays in the base: once issued it is a fact about the Entity, and a constitution that cannot name its subject is not a constitution.

This document

  • Document: Constitution (constitution)
  • Render model: id.entity.render.core@2.2.0.ConstitutionRender
  • Projection: coreRenderData (model-factory lib/project-render-data.mjs)

The text is TemplateMark. It renders from sample.json, which is a deterministic projection of a canonical Entity.ID Constitution instance onto the flat render concept above - not the canonical instance itself.

Provenance

  • Source: Entity.ID drafting, 2026-10-03: edition 03, with the registry reference factored out to a clause
  • Licence: Apache-2.0

Regenerating

Do not hand-edit this directory. It is generated:

node scripts/import-entity-templates.mjs [path-to-model-factory]   # emits src/minimal-charter-03

Template Text

Constitution of MERIDIAN COLLECTIVE

The undersigned, for the purpose of constituting MERIDIAN COLLECTIVE as an entity distinct from themselves and of stating the terms by which it exists, acts and changes, certifies that the articles set out below are adopted as its Constitution, and that the statements made in them are true and correct.

Article I - Identity

1.1 The Entity is named MERIDIAN COLLECTIVE and is identified by meridian-collective.public.entity.id.

1.2 Where the Entity is recognised as a legal person under any law, that person is its successor: it carries this identifier, this record, and this Constitution so far as that law permits.

Article II - Purpose

2.1 The purpose of the Entity is any lawful activity, initially the development and sale of software.

Adoption

Adopted by the Members on 15 September 2026, and recorded under meridian-collective.public.entity.id.

Signature table - record hash - announcement reference

Constitution of MERIDIAN COLLECTIVE
====

The undersigned, for the purpose of constituting **MERIDIAN COLLECTIVE** as an entity distinct from themselves and of stating the terms by which it exists, acts and changes, certifies that the articles set out below are adopted as its Constitution, and that the statements made in them are true and correct.

Article I - Identity
----

**1.1** The Entity is named **MERIDIAN COLLECTIVE** and is identified by **meridian-collective.public.entity.id**.

**1.2** Where the Entity is recognised as a legal person under any law, that person is its successor: it carries this identifier, this record, and this Constitution so far as that law permits.

Article II - Purpose
----

**2.1** The purpose of the Entity is any lawful activity, initially the development and sale of software.

Adoption
----

Adopted by the Members on 15 September 2026, and recorded under meridian-collective.public.entity.id.

*Signature table - record hash - announcement reference*
# Constitution of {{entityName}}

The undersigned, for the purpose of constituting **{{entityName}}** as an entity distinct from themselves and of stating the terms by which it exists, acts and changes, certifies that the articles set out below are adopted as its Constitution, and that the statements made in them are true and correct.

## Article I - Identity

**1.1** The Entity is named **{{entityName}}** and is identified by **{{identifier}}**.

**1.2** Where the Entity is recognised as a legal person under any law, that person is its successor: it carries this identifier, this record, and this Constitution so far as that law permits.

## Article II - Purpose

**2.1** The purpose of the Entity is {{purpose}}.

## Adoption

Adopted by the {{constituentNounPlural}} on {{adoptedOn as "D MMMM YYYY"}}, and recorded under {{identifier}}.

*Signature table - record hash - announcement reference*
{
    "$class": "id.entity.render.core@2.2.0.ConstitutionRender",
    "entityName": "MERIDIAN COLLECTIVE",
    "identifier": "meridian-collective.public.entity.id",
    "register": "the Entity.ID register",
    "purpose": "any lawful activity, initially the development and sale of software",
    "constituentNoun": "Member",
    "constituentNounPlural": "Members",
    "constituentCount": 2,
    "constituents": [
        {
            "$class": "id.entity.render.core@2.2.0.ConstituentRender",
            "name": "Amara Osei",
            "constituentText": "a natural person, holding the recorded capacities act, amend and withdraw"
        },
        {
            "$class": "id.entity.render.core@2.2.0.ConstituentRender",
            "name": "Jordan Reyes",
            "constituentText": "a natural person, holding the recorded capacities amend and withdraw"
        }
    ],
    "deathIncapacityRule": "their capacities lapse and their interest passes to their successor in title, who holds it without capacity until admitted",
    "actRule": "the Manager, or a majority of the Members acting together",
    "amendmentRule": "a majority of the units in issue",
    "interpreter": "the Members, under the rule in 3.2, and failing agreement by the arbitrator recorded in the register",
    "answerabilityRule": "no Member is personally answerable",
    "term": "perpetually",
    "adoptedOn": "2026-09-15T00:00:00.000Z"
}

Template Model

/*
 * id.entity.render.core - the render view model for constitution-core.
 *
 * NOT a canonical data model. The canonical instance is an
 * id.entity.core@2.2.0.Constitution (models/core@2.2.0.cto); this concept
 * is its deterministic text projection, produced by
 * lib/project-render-data.mjs (the declared six-answers map) and consumed
 * by templates/en/constitution.md. Property paths are preserved from the
 * canonical model (coherence rule): a typed answer under `actRule`
 * projects to a String under `actRule`. Computed presentation fields
 * carry a `Text` suffix and exist only here.
 *
 * Versioned with the catalog package (minimal-charter-03@1.0.0), not published
 * to the model registry.
 *
 * DELIBERATELY the same namespace and concept as constitution-core's
 * render model. The minimal edition differs by what its TEMPLATE renders,
 * not by what the canonical instance can carry, so one projection
 * (coreRenderData) serves both. Each package renders in its own
 * ModelManager, so the shared namespace never collides. Until ask A-5
 * lands - a data-driven projection mechanism - the projection's output
 * $class is hard-coded in lib/project-render-data.mjs, and a renamed
 * namespace here would simply fail to resolve.
 *
 * provenance:
 *   source: models/core@2.2.0.cto + models/ext-e1@0.1.0.cto (projection)
 *   licence: Apache-2.0
 */
namespace id.entity.render.core@2.2.0

import org.accordproject.runtime@0.2.0.{Request,Response} from https://models.accordproject.org/accordproject/runtime@0.2.0.cto

concept ConstituentRender {
  o String name
  o String constituentText
}

/**
 * Projection of an adopted E1 EconomicInterestExtension (company variant).
 * unitClasses and holdings are pre-joined text, not list concepts: the
 * engine evaluates list blocks eagerly even inside a clause block that is
 * later skipped, so a list under this optional concept would fail for
 * instances without E1 (marriage, network state).
 */
concept EconomicInterestRender {
  o String stakeModel
  o String unitClasses
  o String holdings
  o String distributions
  o String transfers
}

@template
concept ConstitutionRender identified by identifier {
  o String entityName
  o String identifier
  o String register
  o String purpose
  o String constituentNoun
  o String constituentNounPlural
  o Integer constituentCount
  o ConstituentRender[] constituents

  // The six answers, projected concept -> String under the same names
  o String deathIncapacityRule
  o String actRule
  o String amendmentRule
  o String interpreter
  o String answerabilityRule
  o String term

  // Present only when the instance adopts E1 (company variant); the
  // template's E1 clause block is skipped when absent.
  o EconomicInterestRender economicInterest optional

  o DateTime adoptedOn
}

Model Dependencies

Template Logic

Find the full logic for this template on on GitHub.

State Types

Type Sample JSON
org.accordproject.runtime@0.2.0.State
{
    "$class": "org.accordproject.runtime@0.2.0.State",
    "$identifier": "0b01be50-bfdc-11f1-9ff7-1d72310b3eef"
}

Request Types

Type Sample JSON
org.accordproject.runtime@0.2.0.Request
{
    "$class": "org.accordproject.runtime@0.2.0.Request",
    "$timestamp": "2026-10-04T10:12:02.357Z"
}

Response Types

Type Sample JSON
org.accordproject.runtime@0.2.0.Response
{
    "$class": "org.accordproject.runtime@0.2.0.Response",
    "$timestamp": "2026-10-04T10:12:02.357Z"
}

Events Types

Type Sample JSON

Technical Integration

Please refer to the Accord Project documentation for how to use a template or integrate it within your application.

View the Latest code for this template on GitHub.