Namespace id.entity.ext.e4.us.de@0.2.0

Compatible with Concerto versions ^5.0.0. Has 21 declarations.

Built on this namespace - the text published at templates.entity.id that these types drive:

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.e4.us.de@0.2.0.EmployerIdentificationNumber from /ext-e4-us-de@0.2.0.cto
      import id.entity.ext.e4.us.de@0.2.0.DelawareFileNumber from /ext-e4-us-de@0.2.0.cto
      import id.entity.ext.e4.us.de@0.2.0.RegistrationAuthorityCode from /ext-e4-us-de@0.2.0.cto
      import id.entity.ext.e4.us.de@0.2.0.JurisdictionCode from /ext-e4-us-de@0.2.0.cto
      import id.entity.ext.e4.us.de@0.2.0.LegalEntityIdentifier from /ext-e4-us-de@0.2.0.cto
      import id.entity.ext.e4.us.de@0.2.0.EntityLegalFormCode from /ext-e4-us-de@0.2.0.cto
      import id.entity.ext.e4.us.de@0.2.0.DelawareCounty from /ext-e4-us-de@0.2.0.cto
      import id.entity.ext.e4.us.de@0.2.0.UsAddress from /ext-e4-us-de@0.2.0.cto
      import id.entity.ext.e4.us.de@0.2.0.RegisteredOfficeAndAgent from /ext-e4-us-de@0.2.0.cto
      import id.entity.ext.e4.us.de@0.2.0.DelawareCorporationKind from /ext-e4-us-de@0.2.0.cto
      import id.entity.ext.e4.us.de@0.2.0.OfficerTitle from /ext-e4-us-de@0.2.0.cto
      import id.entity.ext.e4.us.de@0.2.0.Incorporator from /ext-e4-us-de@0.2.0.cto
      import id.entity.ext.e4.us.de@0.2.0.InitialDirector from /ext-e4-us-de@0.2.0.cto
      import id.entity.ext.e4.us.de@0.2.0.InitialOfficer from /ext-e4-us-de@0.2.0.cto
      import id.entity.ext.e4.us.de@0.2.0.AuthorizedStockClass from /ext-e4-us-de@0.2.0.cto
      import id.entity.ext.e4.us.de@0.2.0.FiscalYearEnd from /ext-e4-us-de@0.2.0.cto
      import id.entity.ext.e4.us.de@0.2.0.DayWindow from /ext-e4-us-de@0.2.0.cto
      import id.entity.ext.e4.us.de@0.2.0.BylawsParameters from /ext-e4-us-de@0.2.0.cto
      import id.entity.ext.e4.us.de@0.2.0.FilingStatus from /ext-e4-us-de@0.2.0.cto
      import id.entity.ext.e4.us.de@0.2.0.CertificateFiling from /ext-e4-us-de@0.2.0.cto
      import id.entity.ext.e4.us.de@0.2.0.DelawareCCorpExtension from /ext-e4-us-de@0.2.0.cto
      
      

Dependencies

Source

    /*
 * E4.US.DE v0.2.0 - Delaware C-Corp formation, properly typed.
 *
 * Supersedes id.entity.ext.e4.us.de@0.1.0 (five loose Strings). v0.1.0 is NOT
 * changed and NOT removed: published model versions are immutable and
 * append-only (CLAUDE.md registry rules), and startup-de-ccorp still renders
 * from it.
 *
 * This namespace is the CANONICAL surface for the delaware-ccorp catalog
 * package. The flat render concept in that package stays a projection - it is
 * not a model - and lib/project-render-data.mjs derives it from the typed
 * facts declared here. TemplateMark cannot dispatch on recursive typed
 * choices, which is the whole reason the split exists.
 *
 * Design notes (full reasoning: vault model-factory/research/
 * 2026-09-22-concerto-modelling-standards.md):
 *   - par value is a PreciseAmount, never a Double: USD 0.00001 has no exact
 *     IEEE-754 representation, and authorizedShares x parValue is the Delaware
 *     franchise-tax assumed-par-value base.
 *   - addresses are typed (PostalAddress + USState + a Delaware county), not
 *     one unparsed String. DGCL 131(c) specifies the registered office as
 *     "the street, number, city, county and postal code".
 *   - jurisdiction is stored as "US-DE" in full: a bare "DE" means Delaware in
 *     the SEC EDGAR code list and Germany in ISO 3166-1.
 *   - the identity triple (jurisdiction, registeredAt, registeredAs) follows
 *     GLEIF's own pre-LEI vocabulary; here registrationAuthority + jurisdiction
 *     + fileNumber.
 *
 * Known wart, stated rather than hidden: this concept inherits E4's loose
 * `RegisteredAgent registeredAgent optional` (name + address as free Strings)
 * alongside the typed `registeredOffice` below. Two fields for one fact. The
 * clean fix is an id.entity.ext.e4@0.2.0 that types or drops it; until then the
 * projection reads `registeredOffice` and ignores the inherited field.
 *
 * provenance:
 *   source: the market-standard Delaware C-Corp startup formation set, as
 *           produced by Stripe Atlas; DGCL 102, 108, 131, 132, 141, 142, 211,
 *           213, 222, 228, 232
 *   licence: Apache-2.0
 */
concerto version "^5.0.0"
namespace id.entity.ext.e4.us.de@0.2.0

import org.accordproject.address@0.2.0.{PostalAddress} from https://models.accordproject.org/address@0.2.0.cto
import org.accordproject.usa.state@0.3.0.{USState} from https://models.accordproject.org/usa/state@0.3.0.cto
import org.accordproject.money@1.0.0.{PreciseAmount} from https://models.accordproject.org/money@1.0.0.cto
import org.accordproject.contact@1.0.0.{EmailAddress} from https://models.accordproject.org/contact@1.0.0.cto
import id.entity.core@2.2.0.{FractionThreshold, DecisionRule} from https://models.entity.id/core@2.2.0.cto
import id.entity.ext.e4@0.1.0.{JurisdictionalConformityExtension} from https://models.entity.id/ext-e4@0.1.0.cto
// ---------------------------------------------------------------------------
// Scalars - one regex per identifier, declared once, reused everywhere.
//
// GOTCHA (verified 2026-09-22): a `default=` on a FIELD whose type is a scalar
// is parsed and then silently ignored - the round-tripped value is undefined.
// Scalar defaults must be declared on the scalar itself, as they are below.
// ---------------------------------------------------------------------------

/** IRS Employer Identification Number, NN-NNNNNNN (Form SS-4 / 147c letter). */
scalar EmployerIdentificationNumber extends String regex=/^[0-9]{2}-[0-9]{7}$/

/**
 * Delaware Division of Corporations file number. Sequentially issued, numeric
 * only, no published width spec: live GLEIF `registeredAs` values for US-DE
 * entities run 7 and 8 digits, practitioner sources report up to 9. A String,
 * never an Integer - leading zeros and width changes must survive.
 */
scalar DelawareFileNumber extends String regex=/^[0-9]{1,9}$/

/** GLEIF Registration Authority code - "RA" + 6 digits (RA list v1.8.1). */
scalar RegistrationAuthorityCode extends String default="RA000602" regex=/^RA[0-9]{6}$/

/** ISO 3166-2 subdivision code, e.g. "US-DE" - always with the country prefix. */
scalar JurisdictionCode extends String default="US-DE" regex=/^[A-Z]{2}-[A-Z0-9]{1,3}$/

/** ISO 17442 Legal Entity Identifier: 18 alphanumerics + 2 check digits. */
scalar LegalEntityIdentifier extends String regex=/^[A-Z0-9]{18}[0-9]{2}$/

/**
 * ISO 20275 Entity Legal Form code - 4 alphanumerics. A Delaware corporation
 * is "XTIQ" (ELF list v1.6, 2026-02-19). A scalar rather than an enum because
 * ELF codes may begin with a digit (4FSX, 1HXP, 12N6) and a Concerto enum
 * member cannot.
 */
scalar EntityLegalFormCode extends String default="XTIQ" regex=/^[A-Z0-9]{4}$/

/**
 * A Delaware county. DGCL 131(c) specifies the registered-office address as
 * "the street, number, city, county and postal code" - county is required by
 * statute, and no external model surveyed (GLEIF, schema.org, SEC DEI,
 * ISO 20022, vCard, OpenCorporates) carries a county field at all.
 */
enum DelawareCounty {
  o NEW_CASTLE
  o KENT
  o SUSSEX
}

// ---------------------------------------------------------------------------
// Addresses - one typed shape, three roles (SUP-89 three-address discipline).
// ---------------------------------------------------------------------------

/**
 * A US mailing address. WRAPS the accordproject PostalAddress (whose fields
 * are all optional and whose addressRegion is a free String) rather than
 * extending it - a Concerto subclass cannot make an inherited optional field
 * required - and adds the two things a Delaware filing actually requires: a
 * typed state and, for the registered office, a county.
 */
concept UsAddress {
  o PostalAddress postalAddress
  o USState state
  o String postalCode regex=/^[0-9]{5}(-[0-9]{4})?$/
  o DelawareCounty county optional
}

/**
 * The registered office and the registered agent at it (DGCL 131, 132). One
 * legal fact, not two - an agent is always "at such address" - so one concept.
 * DGCL 132(b) forbids an agent operating solely through a virtual office or
 * mail forwarding, so this is a physical-address fact.
 */
concept RegisteredOfficeAndAgent {
  o String agentName length=[1,255]
  o UsAddress office
  o String agentFileNumber optional
  o EmailAddress agentEmail optional
}

// ---------------------------------------------------------------------------
// Persons acting in the formation.
// ---------------------------------------------------------------------------

/**
 * The six distinct Delaware incorporation forms. Orthogonal to the ELF code:
 * ISO 20275 v1.6 gives Delaware exactly ONE corporate form, XTIQ
 * "Corporation", so public benefit, close, non-stock and exempt corporations
 * all collapse into it - even though the distinction is legally load-bearing
 * (DGCL subch. XIV for close, subch. XV for public benefit).
 */
enum DelawareCorporationKind {
  o GENERAL_STOCK
  o STOCK_WITH_DIRECTOR_LIABILITY_LIMITATION
  o CLOSE
  o PUBLIC_BENEFIT
  o NON_STOCK
  o EXEMPT
}

enum OfficerTitle {
  o CHAIR_OF_THE_BOARD
  o CHIEF_EXECUTIVE_OFFICER
  o PRESIDENT
  o CHIEF_FINANCIAL_OFFICER
  o TREASURER
  o SECRETARY
  o VICE_PRESIDENT
  o ASSISTANT_SECRETARY
  o ASSISTANT_TREASURER
}

/**
 * The sole incorporator (DGCL 108). Named separately from the Constituent roll
 * because the incorporator resigns on the board's appointment and is then no
 * longer a constituent of anything.
 */
concept Incorporator {
  o String name length=[1,255]
  o UsAddress mailingAddress
  o Boolean resignsOnBoardAppointment default=true
}

/** A director named in the initial action by the sole incorporator. */
concept InitialDirector {
  o String name length=[1,255]
  o DateTime appointedOn optional
}

/**
 * An officer appointed by the initial board. Dated on both ends, following
 * W3C org: `Membership` + `memberDuring` and OpenCorporates `officers[]`
 * {position, start_date, end_date} - a role with a term, not a name in a list.
 * schema.org's undated `member` is the pattern to avoid.
 */
concept InitialOfficer {
  o String name length=[1,255]
  o OfficerTitle title
  o DateTime appointedOn optional
  o DateTime endedOn optional
}

// ---------------------------------------------------------------------------
// Capital stock - the numbers the certificate states (DGCL 102(a)(4)).
// ---------------------------------------------------------------------------

/**
 * One authorized class of stock.
 *
 * parValue is a PreciseAmount, not a Double: a market-standard startup par of
 * $0.00001 has no exact IEEE-754 representation, and par x shares is the
 * franchise-tax base. unscaledValue "1" with unit scale 5 is exact.
 */
concept AuthorizedStockClass {
  o String name length=[1,64]
  o Long authorizedShares range=[1,]
  o PreciseAmount parValue
  o Boolean voting default=true
  o Boolean blankCheck default=false
}

// ---------------------------------------------------------------------------
// Bylaws - the numbers currently frozen in the prose.
// Every default below is the value the source set already fixes, so an
// instance that omits the whole block renders today's document unchanged.
// ---------------------------------------------------------------------------

enum FiscalYearEnd {
  o DECEMBER_31
  o JUNE_30
  o AS_FIXED_BY_BOARD
}

/** A window in days, inclusive at both ends (DGCL 222: 10 to 60). */
concept DayWindow {
  o Integer minDays range=[0,]
  o Integer maxDays range=[0,]
}

/**
 * The parameters of the bylaws: the values Delaware lets a corporation choose.
 * Everything else in the fifteen articles is fixed text.
 */
concept BylawsParameters {
  /* DGCL 222 - notice of a stockholders' meeting (bylaws Section 7). */
  o DayWindow stockholderMeetingNotice optional

  /* Window in which a properly requested special meeting must be held
     (bylaws Section 6(b)). */
  o DayWindow specialMeetingWindow optional

  /* DGCL 213 - the record date may not precede the meeting by more than
     recordDateMaxDays nor fall within recordDateMinDays (Section 12(a)). */
  o Integer recordDateMaxDays default=60 range=[1,60]
  o Integer recordDateMinDays default=10 range=[1,60]

  /* Re-notice threshold for an adjourned meeting (Section 9). */
  o Integer adjournmentRenoticeDays default=30 range=[1,]

  /* Percentage of voting power that may call a special meeting (Section 6(a)). */
  o Integer specialMeetingCallPercent default=50 range=[1,100]

  /* DGCL 141(b) - board quorum, and the floor it may never fall below. */
  o FractionThreshold boardQuorum optional
  o FractionThreshold boardQuorumFloor optional

  /* DGCL 141(b) - the authorized number of directors. */
  o Integer minDirectors default=1 range=[1,]
  o Integer maxDirectors range=[1,] optional
  o Boolean directorsMustBeStockholders default=false

  /* Right of first refusal on transfers - the corporation's option period
     (Section 38(b)). */
  o Integer transferOptionPeriodDays default=30 range=[1,]

  o FiscalYearEnd fiscalYearEnd default="AS_FIXED_BY_BOARD"

  /* Whether the CGCL 2115(b) quasi-California provisions are carried. */
  o Boolean californiaSection2115Provisions default=true

  /* Which officer roles the bylaws require to exist. */
  o OfficerTitle[] requiredOfficers optional

  /* Who may amend the bylaws - typed, not prose (Article XIII). */
  o DecisionRule amendedBy optional
}

// ---------------------------------------------------------------------------
// The filing itself.
// ---------------------------------------------------------------------------

enum FilingStatus {
  o DRAFT
  o SUBSCRIBED
  o FILED
  o EFFECTIVE
  o REJECTED
}

/**
 * The certificate as filed, with the facts the Division of Corporations
 * returns. Separated from the parameters above because these are facts about
 * the world, not choices the founder makes.
 */
concept CertificateFiling {
  o FilingStatus status default="DRAFT"
  o DelawareCorporationKind corporationKind default="GENERAL_STOCK"
  o DateTime subscribedOn
  o DateTime filedOn optional
  o DateTime effectiveOn optional
  o DelawareFileNumber fileNumber optional
  o EmployerIdentificationNumber ein optional
  o LegalEntityIdentifier lei optional
  o EntityLegalFormCode entityLegalFormCode

  /*
   * GLEIF Registration Authority code for the registrar of record. Delaware's
   * is RA000602 ("Division of Corporations, Department of State", RA list
   * v1.8.1). With `jurisdiction` and `fileNumber` this is the pre-LEI identity
   * triple GLEIF itself uses.
   */
  o RegistrationAuthorityCode registrationAuthority

  /*
   * ISO 3166-2, e.g. "US-DE". Stored in full: a bare "DE" means Delaware in
   * the SEC EDGAR code list and Germany in ISO 3166-1, and the DEI taxonomy
   * carries BOTH meanings in different item types.
   */
  o JurisdictionCode jurisdiction
}

// ---------------------------------------------------------------------------
// The extension.
// ---------------------------------------------------------------------------

/**
 * Delaware C-Corp conformity, v0.2.0. Attaches to an
 * id.entity.core@2.2.0.Constitution through clause 6.2 exactly as v0.1.0 did,
 * so nothing about the Core contract changes.
 *
 * Share economics stay in E1 (UnitClass/Holding). `authorizedStock` here is the
 * CERTIFICATE'S statement of authorized capital - a legal assertion in a filed
 * document, a different fact from the register's economic model. The two are
 * reconciled by an explicit check in the projection, not by one silently
 * standing in for the other.
 */
concept DelawareCCorpExtension extends JurisdictionalConformityExtension {
  o Incorporator incorporator
  o RegisteredOfficeAndAgent registeredOffice
  o UsAddress principalOffice optional
  o AuthorizedStockClass[] authorizedStock size=[1,]
  o InitialDirector[] initialDirectors optional
  o InitialOfficer[] initialOfficers optional
  o BylawsParameters bylaws
  o CertificateFiling filing
  o String statedBusinessPurpose length=[1,2000] optional
}