Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
224 changes: 224 additions & 0 deletions public/contracts/artifacts/types/contact/1.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,224 @@
---
kind: mdbase.type
name: contact
version: 1
description: A fully expanded, editable Markdown-backed Contact using JSContact 2.0
match:
where:
/@type: Card
version: "2.0"
schema:
dialect: json-schema-2020-12
value:
$schema: https://json-schema.org/draft/2020-12/schema
title: Contact
description: A local starting shape for a person or organisation using IETF JSContact 2.0.
type: object
required:
- "@type"
- version
properties:
"@type":
const: Card
version:
const: "2.0"
uid:
type: string
minLength: 1
kind:
enum:
- individual
- group
- org
- location
- device
- application
name:
type: object
properties:
"@type":
const: Name
components:
type: array
minItems: 1
contains:
type: object
required:
- kind
properties:
kind:
not:
const: separator
items:
type: object
required:
- kind
- value
properties:
"@type":
const: NameComponent
kind:
enum:
- credential
- generation
- given
- given2
- separator
- surname
- surname2
- title
value:
type: string
additionalProperties: false
full:
type: string
minLength: 1
isOrdered:
type: boolean
defaultSeparator:
type: string
anyOf:
- required:
- components
- required:
- full
additionalProperties: false
emails:
type: object
propertyNames:
type: string
minLength: 1
additionalProperties:
type: object
required:
- address
properties:
"@type":
const: EmailAddress
address:
type: string
format: email
contexts:
type: object
additionalProperties:
const: true
pref:
type: integer
minimum: 1
label:
type: string
additionalProperties: false
phones:
type: object
propertyNames:
type: string
minLength: 1
additionalProperties:
type: object
required:
- number
properties:
"@type":
const: Phone
number:
type: string
minLength: 1
features:
type: object
additionalProperties:
const: true
contexts:
type: object
additionalProperties:
const: true
pref:
type: integer
minimum: 1
label:
type: string
additionalProperties: false
organizations:
type: object
propertyNames:
type: string
minLength: 1
additionalProperties:
type: object
properties:
"@type":
const: Organization
name:
type: string
minLength: 1
units:
type: array
minItems: 1
items:
type: object
required:
- name
properties:
"@type":
const: OrgUnit
name:
type: string
minLength: 1
additionalProperties: false
sortAs:
type: string
contexts:
type: object
additionalProperties:
const: true
anyOf:
- required:
- name
- required:
- units
additionalProperties: false
notes:
type: object
propertyNames:
type: string
minLength: 1
additionalProperties:
type: object
required:
- note
properties:
"@type":
const: Note
note:
type: string
created:
type: string
format: date-time
additionalProperties: false
additionalProperties: false
collection:
display:
name_field: /name/full
implements:
- contract: mdbase.jscontact.card
version: 2.0.0
fields:
/@type: /@type
version: version
uid: uid
kind: kind
name: name
emails: emails
phones: phones
organizations: organizations
notes: notes
---

# Contact

This type begins as a fully expanded local copy of the JSContact core profile.
Nested fields are declared inline so the type editor can edit them directly.
Its fields belong to the collection and can be added, renamed, or reshaped.
Update the explicit contract mapping whenever a compatible field moves.

The separately installed contract schema remains the portable boundary. Local
fields that are not mapped into that boundary remain collection-specific.
93 changes: 85 additions & 8 deletions public/contracts/catalog.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"catalog_version": 1,
"catalog_version": 2,
"id": "dev.mdbase.first-party",
"name": "mdbase contracts",
"description": "Reviewed first-party contracts and starter type packs for mdbase collections.",
Expand Down Expand Up @@ -193,19 +193,39 @@
"packs": [
{
"id": "mdbase.jscontact",
"version": "2.0.2",
"name": "JSContact 2.0 starter",
"description": "The mdbase JSContact Card core contract and a fully expanded, editable Markdown implementation.",
"digest": "sha256:f6f5aa76850c10b83d42c0fffb7f76d3a67b531fb1de7bb5ae9a9b2c783687b0",
"provision": "./packs/mdbase.jscontact/2.0.2.json",
"version": "2.0.3",
"name": "Contact type pack",
"description": "The mdbase JSContact Card core contract and a fully expanded, editable Contact type.",
"digest": "sha256:e89693733a9d3d98bdd05fc040a08d7fb6f5eaea22089ed4ef8e0f1392e9c269",
"provision": "./packs/mdbase.jscontact/2.0.3.json",
"provides": [
{
"id": "mdbase.jscontact.card",
"version": "2.0.0"
}
],
"resource_count": 3,
"featured": true
"display": {
"name": "Contact",
"summary": "Store people and organisations with names, email addresses, phone numbers, and notes.",
"category": "people",
"audience": "general",
"icon": "address-book",
"badges": [
"JSContact 2.0"
]
},
"installation": {
"visibility": "default",
"recommendation": "user",
"primary_type": "contact",
"types": [
{
"name": "contact",
"label": "Contact"
}
]
}
},
{
"id": "mdbase.runtime.standard",
Expand Down Expand Up @@ -257,7 +277,64 @@
}
],
"resource_count": 43,
"featured": true
"display": {
"name": "Runtime standard library",
"summary": "Internal records and contracts for durable workflows, runs, timers, and diagnostics.",
"category": "infrastructure",
"audience": "infrastructure",
"icon": "terminal-window",
"badges": [
"Runtime 0.2"
]
},
"installation": {
"visibility": "advanced",
"recommendation": "integration-managed",
"primary_type": null,
"caution": "Most collections do not need this pack. Install it only when a runtime integration asks you to.",
"types": [
{
"name": "runtime_workflow",
"label": "Runtime workflow"
},
{
"name": "runtime_policy",
"label": "Runtime policy"
},
{
"name": "runtime_provider_registration",
"label": "Runtime provider registration"
},
{
"name": "runtime_capability_grant",
"label": "Runtime capability grant"
},
{
"name": "runtime_run",
"label": "Runtime run"
},
{
"name": "runtime_action_attempt",
"label": "Runtime action attempt"
},
{
"name": "runtime_checkpoint",
"label": "Runtime checkpoint"
},
{
"name": "runtime_timer",
"label": "Runtime timer"
},
{
"name": "runtime_diagnostic",
"label": "Runtime diagnostic"
},
{
"name": "runtime_dead_letter",
"label": "Runtime dead letter"
}
]
}
}
]
}
Loading