types/
Dynamic type definitions — custom input/output types for actions, signal types, and the data dictionary in general. A type with parents: declared inherits properties from its parent types (which may be JVM-known host types or other realm-declared types).
A type may also declare itself a spine (spine:) — a shared identity that records from other realms resolve onto, so that a CRM’s customer, a helpdesk’s company and a billing system’s account are one node. That, and the rule for choosing between parents: and spine:, is VIRTUAL_CYPHER.md §5.4.1–5.4.3; it is the foundation of every cross-realm join that is not already on a person or an email domain.
- name: GitHubIssue description: "A GitHub issue to process" properties: owner: "Repository owner" repo: "Repository name" issue: "Issue number" title: "Issue title" body: "Issue body"A type whose parents: includes Signal (the host-defined signal base type) is a signal type — automatically eligible for the consequence engine, triage rules, and persistence as a SignalRecord. See events/ below.
- name: StripeEvent parents: [Signal] description: "A Stripe webhook event" properties: eventType: "Stripe event type, e.g. charge.failed" amount: "Charge amount in minor units" currency: "ISO 4217 currency code" customerId: "Stripe customer id"
