Use object_import instead to draft from existing schema files. Use it when exploring object shapes with list/show; use catalog_list instead to choose components, structured_data_fetch for complete datasets, or registry_snapshot for mappings together with definitions. Returns definitions, composed traits/view extensions, validation findings or registry write/reload results. action selects list/show/validate/register/reload. includeInternal reveals hidden objects. validate/register accept YAML; register writes your configured folder after checking declared contexts, and overwrite replaces your own definition. Team objects may shadow shipped objects; traits cannot reuse shipped names. Relationships validate their target and field. Reload reads folders without restarting. Reference: TOOL-REFERENCE.md#object_registry; full schema: oods://schemas/object_registry.input.json.

Inputs

Name Type Required Description
action "list" | "show" | "validate" | "register" | "reload" yes Selects the per-action contract: 'list' returns the objects in use with their source, business objects first and internal ones only with includeInternal, and every file not in use; 'show' returns the full composed… See full schema for details.
domain string no Filter to objects in a specific domain (e.g. 'core.identity', 'saas.billing'). Actions: list.
maturity "draft" | "alpha" | "beta" | "stable" no Filter by metadata maturity level. Actions: list.
trait string no Filter to objects composing a given trait (e.g. 'Priceable', 'lifecycle/Stateful'). Actions: list.
includeInternal boolean no Also list OODS Foundry's internal (non-business) objects, after the business objects. Without it they are left out and hiddenInternal counts them. Actions: list.
name string no Object name to look up (e.g. 'User', 'Product', 'Invoice'). Actions: show (required).
context string no Optional: filter view_extensions to a single context (e.g. 'detail', 'list', 'form', 'timeline', 'card', 'inline'). Actions: show.
yaml string no The whole definition as YAML: an object file starts with "object:", a trait file with "trait:" (the same format as OODS Foundry's own objects/ and traits/). Actions: validate (required), register (required). See full schema for details.
overwrite boolean no Replace a definition of yours with this name; without it a name you already registered is refused (OODS-C004). Actions: register.

Outputs

The package ships no output schema for this tool.

A real call

Recorded by this site's harbor run, step trait-validate, with the published OODS Foundry 0.10.1.

Its input:

{
  "action": "validate",
  "yaml": "trait:\n  name: Stockable\n  version: 1.0.0\n  description: How full a storage location is, counted in the unit the team stores goods in.\n  category: inventory\n  tags:\n    - inventory\n    - capacity\n\nparameters:\n  - name: capacityUnit\n    type: string\n    required: false\n    description: The unit capacity and stock are counted in.\n    default: pallets\n\nschema:\n  stock_level:\n    type: string\n    required: true\n    description: Whether the location has room, is nearly full, or is full.\n    validation:\n      enum:\n        - room_available\n        - nearly_full\n        - full\n  capacity_units:\n    type: integer\n    required: true\n    description: How many units the location holds when it is full.\n    examples:\n      - 1200\n      - 800\n      - 2400\n  units_on_hand:\n    type: integer\n    required: true\n    description: How many units are stored there now.\n    examples:\n      - 640\n      - 760\n      - 2400\n\nsemantics:\n  stock_level:\n    semantic_type: inventory.stock.level\n    token_mapping: tokenMap(inventory.stock.*)\n    ui_hints:\n      component: StatusBadge\n\nview_extensions:\n  list:\n    - component: StatusBadge\n      position: after\n      props:\n        statusField: stock_level\n        emphasis: subtle\n        showIcon: false\n  card:\n    - component: StatusBadge\n      position: after\n      props:\n        statusField: stock_level\n        emphasis: subtle\n        showIcon: false\n  detail:\n    - component: StatusBadge\n      position: main\n      priority: 70\n      props:\n        statusField: stock_level\n        emphasis: subtle\n        showIcon: false\n    # Like the shipped Supersedable trait: the fields the trait is about are placed explicitly, so the detail\n    # composer's field budget never leaves them out.\n    - component: Text\n      position: main\n      priority: 69\n      props:\n        field: units_on_hand\n    - component: Text\n      position: main\n      priority: 68\n      props:\n        field: capacity_units\n\ntokens:\n  inventory.stock.tone: neutral\n\ndependencies: []\n"
}

Its result:

{
  "kind": "trait",
  "name": "Stockable",
  "valid": true,
  "errors": [],
  "warnings": [],
  "contexts": [
    "list",
    "card",
    "detail"
  ],
  "folder": "~/.oods-foundry/traits"
}

The whole call, 2 KB of JSON