/* * 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 }