{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://modules.openmercato.com/schema/tools-1.json",
  "title": "Open Mercato Modules tools@1",
  "$defs": {
    "SearchModulesInput": {
      "type": "object",
      "properties": {
        "query": {
          "description": "Words to search for. Leave it out, or pass \"\", to list what the filters (emits, consumes, category...) pick.",
          "type": "string",
          "maxLength": 200
        },
        "omVersion": {
          "type": "string",
          "maxLength": 40
        },
        "category": {
          "type": "string",
          "enum": [
            "crm-sales",
            "catalog-pricing",
            "orders-checkout",
            "warehouse-shipping",
            "payments-finance",
            "marketing-loyalty",
            "communication",
            "integrations-sync",
            "ai-automation",
            "search-analytics",
            "auth-security",
            "content-portal",
            "localization-compliance",
            "storage-infrastructure",
            "devtools",
            "operations"
          ]
        },
        "type": {
          "maxItems": 3,
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "official",
              "community",
              "3rd-party"
            ]
          }
        },
        "kind": {
          "maxItems": 5,
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "module",
              "provider",
              "library",
              "tool",
              "built-in"
            ]
          }
        },
        "verifiedOnly": {
          "default": false,
          "type": "boolean"
        },
        "includeBuiltIn": {
          "default": true,
          "type": "boolean"
        },
        "includeExamples": {
          "default": false,
          "type": "boolean"
        },
        "emits": {
          "type": "string",
          "maxLength": 100,
          "pattern": "^[a-z0-9_]+(\\.[A-Za-z0-9_*-]+){1,5}$"
        },
        "consumes": {
          "type": "string",
          "maxLength": 100,
          "pattern": "^[a-z0-9_]+(\\.[A-Za-z0-9_*-]+){1,5}$"
        },
        "provider": {
          "type": "string",
          "maxLength": 32
        },
        "limit": {
          "default": 10,
          "type": "integer",
          "minimum": 1,
          "maximum": 20
        }
      }
    },
    "SearchModulesOutput": {
      "type": "object",
      "properties": {
        "results": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "locator": {
                "type": "string",
                "pattern": "^(npm:(?:@[a-z0-9-~][a-z0-9-._~]*\\/)?[a-z0-9-~][a-z0-9-._~]*|github:[A-Za-z0-9-]{1,39}\\/[A-Za-z0-9._-]{1,100})$"
              },
              "path": {
                "type": "string",
                "pattern": "^(@[a-z0-9-~][a-z0-9-._~]*\\/[a-z0-9-~][a-z0-9-._~]*|[a-z0-9-~][a-z0-9-._~]*|github\\/[a-z0-9-]{1,39}\\/[a-z0-9._-]{1,100})$"
              },
              "title": {
                "type": "string"
              },
              "summary": {
                "type": "string"
              },
              "whenToUse": {
                "type": "string"
              },
              "type": {
                "type": "string",
                "enum": [
                  "official",
                  "community",
                  "3rd-party"
                ]
              },
              "kind": {
                "type": "string",
                "enum": [
                  "module",
                  "provider",
                  "library",
                  "tool",
                  "built-in"
                ]
              },
              "category": {
                "type": "string",
                "enum": [
                  "crm-sales",
                  "catalog-pricing",
                  "orders-checkout",
                  "warehouse-shipping",
                  "payments-finance",
                  "marketing-loyalty",
                  "communication",
                  "integrations-sync",
                  "ai-automation",
                  "search-analytics",
                  "auth-security",
                  "content-portal",
                  "localization-compliance",
                  "storage-infrastructure",
                  "devtools",
                  "operations"
                ]
              },
              "license": {
                "type": "object",
                "properties": {
                  "spdx": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "kind": {
                    "type": "string",
                    "enum": [
                      "osi",
                      "proprietary",
                      "enterprise",
                      "unknown"
                    ]
                  }
                },
                "required": [
                  "spdx",
                  "kind"
                ],
                "additionalProperties": false
              },
              "tier": {
                "anyOf": [
                  {
                    "type": "string",
                    "enum": [
                      "listed",
                      "verified"
                    ]
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "omQuality": {
                "type": "boolean"
              },
              "verifiedOn": {
                "type": "array",
                "items": {
                  "type": "string",
                  "pattern": "^(\\d+\\.\\d+|next)$"
                }
              },
              "line": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^(\\d+\\.\\d+|next)$"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "status": {
                "anyOf": [
                  {
                    "type": "string",
                    "enum": [
                      "verified",
                      "broken",
                      "quarantine",
                      "harness-red",
                      "infra-error",
                      "untested",
                      "skipped"
                    ]
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "agentPolicy": {
                "anyOf": [
                  {
                    "type": "object",
                    "properties": {
                      "decision": {
                        "type": "string",
                        "enum": [
                          "allow",
                          "ask",
                          "refuse"
                        ]
                      },
                      "reasons": {
                        "maxItems": 10,
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "code": {
                              "type": "string"
                            },
                            "text": {
                              "type": "string",
                              "maxLength": 160
                            }
                          },
                          "required": [
                            "code",
                            "text"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "until": {
                        "type": "string",
                        "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
                      },
                      "consentText": {
                        "type": "string",
                        "maxLength": 160
                      }
                    },
                    "required": [
                      "decision",
                      "reasons"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "installableFrom": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "install": {
                "type": "string",
                "description": "What to run on the line: the exact install command, or, on a line whose new app (from the classic preset) already registers the package (presetNote is set), the sentence that there is nothing to install. Never run it there: the command for an app from the empty preset is installEmptyPreset. A GitHub entry with no pinned tag (agentPolicy UNPINNED_GIT) gets a sentence too: it has no installable version."
              },
              "matchedOn": {
                "maxItems": 5,
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "card": {
                "type": "string",
                "format": "uri"
              },
              "presetNote": {
                "description": "Set on a line whose new app (from the classic preset, what create-mercato-app makes without --preset) already registers the package: nothing to install there, followed by the command of an app from the empty preset when that preset does not register it. Absent: install the package with `install`.",
                "anyOf": [
                  {
                    "type": "string",
                    "maxLength": 400
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "installEmptyPreset": {
                "description": "Set with presetNote: the command for an app from the empty preset (`yarn mercato module add ...`), or null when that preset registers the package too. Run it only in such an app; a new app gets `already enabled`.",
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": [
              "locator",
              "path",
              "title",
              "summary",
              "whenToUse",
              "type",
              "kind",
              "category",
              "license",
              "tier",
              "omQuality",
              "verifiedOn",
              "line",
              "status",
              "agentPolicy",
              "installableFrom",
              "install",
              "matchedOn",
              "card"
            ],
            "additionalProperties": false
          }
        },
        "builtIn": {
          "maxItems": 5,
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "maxLength": 64,
                "pattern": "^[a-z][a-z0-9]*(?:_[a-z0-9]+)*$"
              },
              "title": {
                "type": "string"
              },
              "description": {
                "type": "string"
              },
              "category": {
                "type": "string",
                "enum": [
                  "crm-sales",
                  "catalog-pricing",
                  "orders-checkout",
                  "warehouse-shipping",
                  "payments-finance",
                  "marketing-loyalty",
                  "communication",
                  "integrations-sync",
                  "ai-automation",
                  "search-analytics",
                  "auth-security",
                  "content-portal",
                  "localization-compliance",
                  "storage-infrastructure",
                  "devtools",
                  "operations"
                ]
              },
              "enabled": {
                "type": [
                  "boolean",
                  "null"
                ]
              },
              "install": {
                "type": "string"
              },
              "page": {
                "type": "string",
                "format": "uri"
              },
              "matchedOn": {
                "maxItems": 5,
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "presetNote": {
                "description": "What a new app (from the classic preset) of the line has: on (nothing to enable), followed by `install` for an app from the empty preset when that preset has it off. Null: off in a new app, enable it with `install`.",
                "anyOf": [
                  {
                    "type": "string",
                    "maxLength": 240
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "required": [
              "id",
              "title",
              "description",
              "category",
              "enabled",
              "install",
              "page",
              "matchedOn"
            ],
            "additionalProperties": false
          }
        },
        "total": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        "line": {
          "anyOf": [
            {
              "type": "string",
              "pattern": "^(\\d+\\.\\d+|next)$"
            },
            {
              "type": "null"
            }
          ]
        },
        "dataVersion": {
          "type": "string"
        },
        "generatedAt": {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
        },
        "receiptSource": {
          "anyOf": [
            {
              "type": "string",
              "enum": [
                "ci",
                "preview"
              ]
            },
            {
              "type": "null"
            }
          ]
        },
        "didYouMean": {
          "description": "Set when nothing matched the query and the results are for this spelling of it (`stirpe` -> `stripe`).",
          "type": "string",
          "maxLength": 300
        }
      },
      "required": [
        "results",
        "builtIn",
        "total",
        "line",
        "dataVersion",
        "generatedAt"
      ],
      "additionalProperties": false
    },
    "GetModuleInput": {
      "type": "object",
      "properties": {
        "ref": {
          "type": "string",
          "minLength": 1,
          "maxLength": 220
        },
        "version": {
          "type": "string",
          "pattern": "^\\d+\\.\\d+\\.\\d+(?:-[0-9A-Za-z.-]+)?$"
        },
        "sections": {
          "maxItems": 6,
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "anatomy",
              "compat",
              "trust",
              "install",
              "versions",
              "readme"
            ]
          }
        }
      },
      "required": [
        "ref"
      ]
    },
    "GetModuleOutput": {
      "type": "object",
      "properties": {
        "entry": {
          "anyOf": [
            {
              "type": "object",
              "properties": {
                "locator": {
                  "type": "string",
                  "pattern": "^(npm:(?:@[a-z0-9-~][a-z0-9-._~]*\\/)?[a-z0-9-~][a-z0-9-._~]*|github:[A-Za-z0-9-]{1,39}\\/[A-Za-z0-9._-]{1,100})$"
                },
                "path": {
                  "type": "string",
                  "pattern": "^(@[a-z0-9-~][a-z0-9-._~]*\\/[a-z0-9-~][a-z0-9-._~]*|[a-z0-9-~][a-z0-9-._~]*|github\\/[a-z0-9-]{1,39}\\/[a-z0-9._-]{1,100})$"
                },
                "npm": {
                  "anyOf": [
                    {
                      "type": "string",
                      "maxLength": 214,
                      "pattern": "^(?:@[a-z0-9-~][a-z0-9-._~]*\\/)?[a-z0-9-~][a-z0-9-._~]*$"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "github": {
                  "anyOf": [
                    {
                      "type": "string",
                      "pattern": "^[A-Za-z0-9](?:[A-Za-z0-9-]{0,38})\\/[A-Za-z0-9._-]{1,100}$"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "repoPath": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "kind": {
                  "type": "string",
                  "enum": [
                    "module",
                    "provider",
                    "library",
                    "tool"
                  ]
                },
                "type": {
                  "type": "string",
                  "enum": [
                    "official",
                    "community",
                    "3rd-party"
                  ]
                },
                "enterprise": {
                  "type": "boolean"
                },
                "title": {
                  "type": "string",
                  "maxLength": 80
                },
                "summary": {
                  "type": "string"
                },
                "whenToUse": {
                  "type": "string"
                },
                "whenNotToUse": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "category": {
                  "type": "string",
                  "enum": [
                    "crm-sales",
                    "catalog-pricing",
                    "orders-checkout",
                    "warehouse-shipping",
                    "payments-finance",
                    "marketing-loyalty",
                    "communication",
                    "integrations-sync",
                    "ai-automation",
                    "search-analytics",
                    "auth-security",
                    "content-portal",
                    "localization-compliance",
                    "storage-infrastructure",
                    "devtools",
                    "operations"
                  ]
                },
                "tags": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "providers": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "name": {
                        "type": "string"
                      },
                      "label": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "name",
                      "label"
                    ],
                    "additionalProperties": false
                  }
                },
                "moduleIds": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "maxLength": 64,
                    "pattern": "^[a-z][a-z0-9]*(?:_[a-z0-9]+)*$"
                  }
                },
                "requires": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "raw": {
                        "type": "string"
                      },
                      "resolvesTo": {
                        "type": [
                          "string",
                          "null"
                        ]
                      }
                    },
                    "required": [
                      "raw",
                      "resolvesTo"
                    ],
                    "additionalProperties": false
                  }
                },
                "replaces": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "slotConflicts": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "pattern": "^(npm:(?:@[a-z0-9-~][a-z0-9-._~]*\\/)?[a-z0-9-~][a-z0-9-._~]*|github:[A-Za-z0-9-]{1,39}\\/[A-Za-z0-9._-]{1,100})$"
                  }
                },
                "renamedFrom": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "pattern": "^(npm:(?:@[a-z0-9-~][a-z0-9-._~]*\\/)?[a-z0-9-~][a-z0-9-._~]*|github:[A-Za-z0-9-]{1,39}\\/[A-Za-z0-9._-]{1,100})$"
                  }
                },
                "supersededBy": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "alternatives": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "pattern": "^(npm:(?:@[a-z0-9-~][a-z0-9-._~]*\\/)?[a-z0-9-~][a-z0-9-._~]*|github:[A-Za-z0-9-]{1,39}\\/[A-Za-z0-9._-]{1,100})$"
                  }
                },
                "status": {
                  "type": "string",
                  "enum": [
                    "active",
                    "hold",
                    "unmaintained",
                    "delisted",
                    "deprecated",
                    "archived",
                    "stale"
                  ]
                },
                "listed": {
                  "type": "boolean"
                },
                "featured": {
                  "type": "boolean"
                },
                "license": {
                  "type": "object",
                  "properties": {
                    "spdx": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "kind": {
                      "type": "string",
                      "enum": [
                        "osi",
                        "proprietary",
                        "enterprise",
                        "unknown"
                      ]
                    },
                    "mismatch": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "spdx",
                    "kind",
                    "mismatch"
                  ],
                  "additionalProperties": false
                },
                "version": {
                  "type": "object",
                  "properties": {
                    "latest": {
                      "anyOf": [
                        {
                          "type": "string",
                          "pattern": "^\\d+\\.\\d+\\.\\d+$"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "preview": {
                      "anyOf": [
                        {
                          "type": "string",
                          "pattern": "^\\d+\\.\\d+\\.\\d+(?:-[0-9A-Za-z.-]+)?$"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "publishedAt": {
                      "anyOf": [
                        {
                          "type": "string",
                          "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "integrity": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "installableFrom": {
                      "anyOf": [
                        {
                          "type": "string",
                          "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "gitRef": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "recommended": {
                      "type": "object",
                      "propertyNames": {
                        "type": "string",
                        "pattern": "^(\\d+\\.\\d+|next)$"
                      },
                      "additionalProperties": {
                        "anyOf": [
                          {
                            "type": "string",
                            "pattern": "^\\d+\\.\\d+\\.\\d+(?:-[0-9A-Za-z.-]+)?$"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      }
                    }
                  },
                  "required": [
                    "latest",
                    "preview",
                    "publishedAt",
                    "integrity",
                    "installableFrom",
                    "gitRef",
                    "recommended"
                  ],
                  "additionalProperties": false
                },
                "identity": {
                  "type": "object",
                  "properties": {
                    "builtFrom": {
                      "type": "string",
                      "enum": [
                        "verified",
                        "none",
                        "lost"
                      ]
                    },
                    "claimed": {
                      "type": "boolean"
                    },
                    "source": {
                      "type": "string",
                      "enum": [
                        "npm",
                        "github"
                      ]
                    }
                  },
                  "required": [
                    "builtFrom",
                    "claimed",
                    "source"
                  ],
                  "additionalProperties": false
                },
                "compat": {
                  "type": "object",
                  "properties": {
                    "builtFor": {
                      "type": "object",
                      "properties": {
                        "range": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "kind": {
                          "type": "string",
                          "enum": [
                            "exact-pin",
                            "caret-0x",
                            "bounded",
                            "open",
                            "star",
                            "missing"
                          ]
                        },
                        "lines": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "pattern": "^(\\d+\\.\\d+|next)$"
                          }
                        },
                        "ranges": {
                          "description": "The declared peer range per line, of the version a new app has on that line (compat.ships, else the version it installs), for every line whose declaration was read, when the lines are judged on different versions or their ranges differ (search: { '0.8': '0.8.0', '0.9': '0.9.0' }). A line in `ranges` but not in `lines` declares a range that rejects the line's version; a line missing from `ranges` has a version whose peers were not read (a develop snapshot on next). Absent: every line is judged on one version, whose declaration is `range`.",
                          "type": "object",
                          "propertyNames": {
                            "type": "string",
                            "pattern": "^(\\d+\\.\\d+|next)$"
                          },
                          "additionalProperties": {
                            "type": "string"
                          }
                        }
                      },
                      "required": [
                        "range",
                        "kind",
                        "lines"
                      ],
                      "additionalProperties": false
                    },
                    "lines": {
                      "type": "object",
                      "propertyNames": {
                        "type": "string",
                        "pattern": "^(\\d+\\.\\d+|next)$"
                      },
                      "additionalProperties": {
                        "type": "object",
                        "properties": {
                          "status": {
                            "type": "string",
                            "enum": [
                              "verified",
                              "broken",
                              "quarantine",
                              "harness-red",
                              "infra-error",
                              "untested",
                              "skipped"
                            ]
                          },
                          "step": {
                            "anyOf": [
                              {
                                "type": "string",
                                "enum": [
                                  "scaffold",
                                  "install",
                                  "add",
                                  "generate",
                                  "typecheck",
                                  "initialize",
                                  "build",
                                  "start",
                                  "smoke"
                                ]
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "omVersion": {
                            "type": "string",
                            "pattern": "^\\d+\\.\\d+\\.\\d+(?:-[0-9A-Za-z.-]+)?$"
                          },
                          "moduleVersion": {
                            "anyOf": [
                              {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d+\\.\\d+(?:-[0-9A-Za-z.-]+)?$"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "at": {
                            "anyOf": [
                              {
                                "type": "string",
                                "format": "date-time",
                                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "receipt": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "since": {
                            "anyOf": [
                              {
                                "type": "string",
                                "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "precheck": {
                            "anyOf": [
                              {
                                "type": "string",
                                "enum": [
                                  "pass",
                                  "fail"
                                ]
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "patches": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "finding": {
                            "description": "Why the failed step of a broken cell failed, one sentence, when its excerpt says it plainly. The sentence the module page prints under its strip. Absent: no explanation (the receipt has the error).",
                            "type": "string",
                            "maxLength": 300
                          },
                          "installs": {
                            "description": "Set when the cell's receipt judged another version (moduleVersion) than the one a fresh app installs on the line: that version. The cell is then no verdict on the line; status is the other version's, and modules.json signals.receipt[line] says untested.",
                            "type": "string",
                            "pattern": "^\\d+\\.\\d+\\.\\d+(?:-[0-9A-Za-z.-]+)?$"
                          }
                        },
                        "required": [
                          "status",
                          "step",
                          "omVersion",
                          "moduleVersion",
                          "at",
                          "receipt",
                          "since",
                          "precheck",
                          "patches"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "verifiedOn": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "pattern": "^(\\d+\\.\\d+|next)$"
                      }
                    },
                    "inPresets": {
                      "description": "Lines whose new app (from the classic preset, what create-mercato-app makes without --preset) already registers the package in src/modules.ts. Nothing to install there: install.cli is for an app that does not have it. The line keeps its verdict in compat.lines, the receipt of the version a new app ships there (compat.ships).",
                      "type": "array",
                      "items": {
                        "type": "string",
                        "pattern": "^(\\d+\\.\\d+|next)$"
                      }
                    },
                    "inEmptyPreset": {
                      "description": "Lines whose app from the empty preset registers the package too, so no app of the line needs to install it.",
                      "type": "array",
                      "items": {
                        "type": "string",
                        "pattern": "^(\\d+\\.\\d+|next)$"
                      }
                    },
                    "ships": {
                      "description": "On a line of inPresets, the version of the package a new app ships there. compat.lines[line] is the receipt of that version.",
                      "type": "object",
                      "propertyNames": {
                        "type": "string",
                        "pattern": "^(\\d+\\.\\d+|next)$"
                      },
                      "additionalProperties": {
                        "type": "string",
                        "pattern": "^\\d+\\.\\d+\\.\\d+(?:-[0-9A-Za-z.-]+)?$"
                      }
                    },
                    "isolation": {
                      "description": "The signal 'in isolation' per line: the last receipt of the package in an app from the empty preset (twelve modules, the module without the rest of the platform). A second signal, never the main verdict: compat.lines (a new app, the classic preset), verifiedOn, tier, agentPolicy and version.recommended do not read it. finding: what a failed step found, one sentence.",
                      "type": "object",
                      "propertyNames": {
                        "type": "string",
                        "pattern": "^(\\d+\\.\\d+|next)$"
                      },
                      "additionalProperties": {
                        "type": "object",
                        "properties": {
                          "status": {
                            "type": "string",
                            "enum": [
                              "verified",
                              "broken",
                              "quarantine",
                              "harness-red",
                              "infra-error",
                              "untested",
                              "skipped"
                            ]
                          },
                          "step": {
                            "anyOf": [
                              {
                                "type": "string",
                                "enum": [
                                  "scaffold",
                                  "install",
                                  "add",
                                  "generate",
                                  "typecheck",
                                  "initialize",
                                  "build",
                                  "start",
                                  "smoke"
                                ]
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "moduleVersion": {
                            "anyOf": [
                              {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d+\\.\\d+(?:-[0-9A-Za-z.-]+)?$"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "at": {
                            "anyOf": [
                              {
                                "type": "string",
                                "format": "date-time",
                                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "receipt": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "finding": {
                            "type": "string",
                            "maxLength": 300
                          }
                        },
                        "required": [
                          "status",
                          "step",
                          "moduleVersion",
                          "at",
                          "receipt"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "newerBreaks": {
                      "type": "object",
                      "propertyNames": {
                        "type": "string",
                        "pattern": "^(\\d+\\.\\d+|next)$"
                      },
                      "additionalProperties": {
                        "type": "object",
                        "properties": {
                          "moduleVersion": {
                            "type": "string",
                            "pattern": "^\\d+\\.\\d+\\.\\d+(?:-[0-9A-Za-z.-]+)?$"
                          },
                          "step": {
                            "anyOf": [
                              {
                                "type": "string",
                                "enum": [
                                  "scaffold",
                                  "install",
                                  "add",
                                  "generate",
                                  "typecheck",
                                  "initialize",
                                  "build",
                                  "start",
                                  "smoke"
                                ]
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "at": {
                            "type": "string",
                            "format": "date-time",
                            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
                          },
                          "receipt": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "moduleVersion",
                          "step",
                          "at",
                          "receipt"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "collisions": {
                      "description": "Per line, backend routes of the module that a module of a new app (the classic preset) already has, read statically from the facts of both (route: the module's own; module and from: the app's module and the package that registers it). yarn generate refuses two modules with one backend route. A warning, never a verdict: on a line without a receipt verdict the policy names it (ROUTE_COLLISION).",
                      "type": "object",
                      "propertyNames": {
                        "type": "string",
                        "pattern": "^(\\d+\\.\\d+|next)$"
                      },
                      "additionalProperties": {
                        "maxItems": 20,
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "route": {
                              "type": "string",
                              "maxLength": 200
                            },
                            "module": {
                              "type": "string",
                              "maxLength": 64,
                              "pattern": "^[a-z][a-z0-9]*(?:_[a-z0-9]+)*$"
                            },
                            "from": {
                              "type": "string",
                              "maxLength": 214
                            }
                          },
                          "required": [
                            "route",
                            "module",
                            "from"
                          ],
                          "additionalProperties": false
                        }
                      }
                    }
                  },
                  "required": [
                    "builtFor",
                    "lines",
                    "verifiedOn"
                  ],
                  "additionalProperties": false
                },
                "anatomy": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "version": {
                          "type": "string",
                          "pattern": "^\\d+\\.\\d+\\.\\d+(?:-[0-9A-Za-z.-]+)?$"
                        },
                        "coverage": {
                          "type": "string",
                          "enum": [
                            "full",
                            "partial",
                            "none"
                          ]
                        },
                        "counts": {
                          "type": "object",
                          "properties": {
                            "entities": {
                              "type": "number"
                            },
                            "tables": {
                              "type": "number"
                            },
                            "migrations": {
                              "type": "number"
                            },
                            "routes": {
                              "type": [
                                "number",
                                "null"
                              ]
                            },
                            "publicRoutes": {
                              "type": [
                                "number",
                                "null"
                              ]
                            },
                            "aclFeatures": {
                              "type": "number"
                            },
                            "eventsEmitted": {
                              "type": "number"
                            },
                            "eventsConsumed": {
                              "type": "number"
                            },
                            "backendPages": {
                              "type": "number"
                            },
                            "frontendPages": {
                              "type": "number"
                            },
                            "widgets": {
                              "type": "number"
                            },
                            "workers": {
                              "type": "number"
                            },
                            "cli": {
                              "type": "number"
                            },
                            "aiTools": {
                              "type": "number"
                            },
                            "aiAgents": {
                              "type": "number"
                            },
                            "extends": {
                              "type": "number"
                            }
                          },
                          "required": [
                            "entities",
                            "tables",
                            "migrations",
                            "routes",
                            "publicRoutes",
                            "aclFeatures",
                            "eventsEmitted",
                            "eventsConsumed",
                            "backendPages",
                            "frontendPages",
                            "widgets",
                            "workers",
                            "cli",
                            "aiTools",
                            "aiAgents",
                            "extends"
                          ],
                          "additionalProperties": false
                        },
                        "lists": {
                          "type": "object",
                          "properties": {
                            "aclFeatures": {
                              "maxItems": 20,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "maxLength": 100,
                                "pattern": "^[a-z0-9_]+(\\.[A-Za-z0-9_*-]+){1,5}$"
                              }
                            },
                            "eventsEmitted": {
                              "maxItems": 20,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "maxLength": 100,
                                "pattern": "^[a-z0-9_]+(\\.[A-Za-z0-9_*-]+){1,5}$"
                              }
                            },
                            "eventsConsumed": {
                              "maxItems": 20,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "maxLength": 100,
                                "pattern": "^[a-z0-9_]+(\\.[A-Za-z0-9_*-]+){1,5}$"
                              }
                            },
                            "env": {
                              "maxItems": 20,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "pattern": "^[A-Z][A-Z0-9_]{1,63}$"
                              }
                            },
                            "envIfSet": {
                              "description": "Env names the code only checks are set, or reads as an opt-in flag in an isXEnabled() function: optional, not needed to run. Absent: none, or facts older than rentgen 4.",
                              "maxItems": 20,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "pattern": "^[A-Z][A-Z0-9_]{1,63}$"
                              }
                            },
                            "hosts": {
                              "maxItems": 20,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "maxLength": 253,
                                "pattern": "^(\\*\\.)?([a-z0-9-]{1,63}\\.)+[a-z]{2,63}$"
                              }
                            },
                            "sdks": {
                              "description": "Dependencies that are SDKs of a known external service (stripe, @aws-sdk/client-s3, @ai-sdk/openai), first 20: the package talks to that service without a URL in its code. A curated, partial list. Absent: none known.",
                              "maxItems": 20,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "maxLength": 214
                              }
                            },
                            "tables": {
                              "maxItems": 20,
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "publicRoutes": {
                              "maxItems": 10,
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "credentials": {
                              "maxItems": 10,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "key": {
                                    "type": "string"
                                  },
                                  "type": {
                                    "type": "string"
                                  },
                                  "required": {
                                    "type": "boolean"
                                  }
                                },
                                "required": [
                                  "key",
                                  "type",
                                  "required"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "backendPages": {
                              "description": "The package's backend page URLs (first 20), as read from its facts. plan_install lists them in adds.backendPages. Absent: not read (older data, built-in modules).",
                              "maxItems": 20,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "maxLength": 200
                              }
                            }
                          },
                          "required": [
                            "aclFeatures",
                            "eventsEmitted",
                            "eventsConsumed",
                            "env",
                            "hosts",
                            "tables",
                            "publicRoutes",
                            "credentials"
                          ],
                          "additionalProperties": false
                        },
                        "callout": {
                          "type": "string",
                          "maxLength": 240
                        },
                        "diff": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "from": {
                                  "type": "string",
                                  "pattern": "^\\d+\\.\\d+\\.\\d+(?:-[0-9A-Za-z.-]+)?$"
                                },
                                "added": {
                                  "type": "object",
                                  "properties": {
                                    "tables": {
                                      "type": "number"
                                    },
                                    "routes": {
                                      "type": "number"
                                    },
                                    "publicRoutes": {
                                      "type": "number"
                                    },
                                    "aclFeatures": {
                                      "type": "number"
                                    },
                                    "env": {
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "pattern": "^[A-Z][A-Z0-9_]{1,63}$"
                                      }
                                    },
                                    "hosts": {
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "maxLength": 253,
                                        "pattern": "^(\\*\\.)?([a-z0-9-]{1,63}\\.)+[a-z]{2,63}$"
                                      }
                                    }
                                  },
                                  "required": [
                                    "tables",
                                    "routes",
                                    "publicRoutes",
                                    "aclFeatures",
                                    "env",
                                    "hosts"
                                  ],
                                  "additionalProperties": false
                                },
                                "removed": {
                                  "type": "object",
                                  "properties": {
                                    "tables": {
                                      "type": "number"
                                    },
                                    "routes": {
                                      "type": "number"
                                    },
                                    "aclFeatures": {
                                      "type": "number"
                                    }
                                  },
                                  "required": [
                                    "tables",
                                    "routes",
                                    "aclFeatures"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "required": [
                                "from",
                                "added",
                                "removed"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "required": [
                        "version",
                        "coverage",
                        "counts",
                        "lists",
                        "callout",
                        "diff"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "signals": {
                  "type": "object",
                  "properties": {
                    "receipt": {
                      "type": "object",
                      "propertyNames": {
                        "type": "string",
                        "pattern": "^(\\d+\\.\\d+|next)$"
                      },
                      "additionalProperties": {
                        "type": "string",
                        "enum": [
                          "verified",
                          "broken",
                          "quarantine",
                          "harness-red",
                          "infra-error",
                          "untested",
                          "skipped"
                        ]
                      }
                    },
                    "fit": {
                      "type": "object",
                      "propertyNames": {
                        "type": "string",
                        "pattern": "^(\\d+\\.\\d+|next)$"
                      },
                      "additionalProperties": {
                        "type": "string",
                        "enum": [
                          "ok",
                          "drift",
                          "no-fit",
                          "unknown"
                        ]
                      }
                    },
                    "anatomy": {
                      "type": "string",
                      "enum": [
                        "full",
                        "partial",
                        "hidden",
                        "none"
                      ]
                    },
                    "supplyChain": {
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "string",
                          "enum": [
                            "ok",
                            "warn",
                            "fail"
                          ]
                        },
                        "reasons": {
                          "maxItems": 10,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "maxLength": 160
                          }
                        }
                      },
                      "required": [
                        "status",
                        "reasons"
                      ],
                      "additionalProperties": false
                    },
                    "hygiene": {
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "string",
                          "enum": [
                            "ok",
                            "warn",
                            "fail"
                          ]
                        },
                        "failing": {
                          "maxItems": 30,
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        }
                      },
                      "required": [
                        "status",
                        "failing"
                      ],
                      "additionalProperties": false
                    },
                    "maintenance": {
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "string",
                          "enum": [
                            "current",
                            "behind",
                            "stale",
                            "archived",
                            "deprecated"
                          ]
                        },
                        "lastRelease": {
                          "anyOf": [
                            {
                              "type": "string",
                              "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "catchUpDays": {
                          "anyOf": [
                            {
                              "type": "integer",
                              "minimum": -9007199254740991,
                              "maximum": 9007199254740991
                            },
                            {
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "required": [
                        "status",
                        "lastRelease",
                        "catchUpDays"
                      ],
                      "additionalProperties": false
                    },
                    "declaredVsObserved": {
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "string",
                          "enum": [
                            "match",
                            "mismatch"
                          ]
                        },
                        "notes": {
                          "maxItems": 10,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "maxLength": 160
                          }
                        }
                      },
                      "required": [
                        "status",
                        "notes"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "receipt",
                    "fit",
                    "anatomy",
                    "supplyChain",
                    "hygiene",
                    "maintenance",
                    "declaredVsObserved"
                  ],
                  "additionalProperties": false
                },
                "tier": {
                  "anyOf": [
                    {
                      "type": "string",
                      "enum": [
                        "listed",
                        "verified"
                      ]
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "quality": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "version": {
                          "type": "string",
                          "pattern": "^\\d+\\.\\d+\\.\\d+$"
                        },
                        "until": {
                          "type": "string",
                          "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
                        },
                        "report": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "version",
                        "until",
                        "report"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "agentPolicy": {
                  "type": "object",
                  "propertyNames": {
                    "type": "string",
                    "pattern": "^(\\d+\\.\\d+|next)$"
                  },
                  "additionalProperties": {
                    "type": "object",
                    "properties": {
                      "decision": {
                        "type": "string",
                        "enum": [
                          "allow",
                          "ask",
                          "refuse"
                        ]
                      },
                      "reasons": {
                        "maxItems": 10,
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "code": {
                              "type": "string"
                            },
                            "text": {
                              "type": "string",
                              "maxLength": 160
                            }
                          },
                          "required": [
                            "code",
                            "text"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "until": {
                        "type": "string",
                        "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
                      },
                      "consentText": {
                        "type": "string",
                        "maxLength": 160
                      }
                    },
                    "required": [
                      "decision",
                      "reasons"
                    ],
                    "additionalProperties": false
                  }
                },
                "install": {
                  "type": "object",
                  "properties": {
                    "cli": {
                      "type": "string",
                      "description": "Install command for the latest line, for an app that does not register the package yet. When the latest line is in compat.inPresets, a new app (from the classic preset) already registers it and there is nothing to install: this is then the command for an app from the empty preset (`yarn mercato module add`; a new app answers `already enabled`), or, when compat.inEmptyPreset names the line too, `yarn add`, which only changes the version. search_modules labels it (presetNote, installEmptyPreset). A module a new app registers behind an env flag (storage_s3 and OM_ENABLE_STORAGE_S3) gets the command of a new app, as plan_install gives it: `yarn add`, the flag in .env and `yarn generate`, never `module add`, which registers it a second time; an app from the empty preset runs `yarn mercato module add` and the flag (plan_install emptyPreset). A GitHub entry with no pinned tag (version.gitRef and every version.recommended null, agentPolicy UNPINNED_GIT) has no installable version: never run this command then, it installs whatever the default branch holds; the card, search_modules and raw/modules.md say there is nothing to install."
                    },
                    "cmm": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "needsAllowThirdParty": {
                      "type": "boolean"
                    },
                    "moduleFlag": {
                      "anyOf": [
                        {
                          "type": "string",
                          "maxLength": 64,
                          "pattern": "^[a-z][a-z0-9]*(?:_[a-z0-9]+)*$"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    }
                  },
                  "required": [
                    "cli",
                    "cmm",
                    "needsAllowThirdParty",
                    "moduleFlag"
                  ],
                  "additionalProperties": false
                },
                "screenshots": {
                  "description": "Screenshots of the module in a running app, from the descriptor. src is site-relative (with the base path, a file the catalog hosts) or an https URL on GitHub; resolve a site-relative src against the site origin. alt is plain text. Absent: the descriptor has none.",
                  "maxItems": 6,
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "src": {
                        "type": "string",
                        "maxLength": 300,
                        "pattern": "^(\\/|https:\\/\\/)"
                      },
                      "alt": {
                        "type": "string",
                        "maxLength": 120
                      }
                    },
                    "required": [
                      "src",
                      "alt"
                    ],
                    "additionalProperties": false
                  }
                },
                "stats": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "downloads30d": {
                          "anyOf": [
                            {
                              "type": "integer",
                              "minimum": -9007199254740991,
                              "maximum": 9007199254740991
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "stars": {
                          "anyOf": [
                            {
                              "type": "integer",
                              "minimum": -9007199254740991,
                              "maximum": 9007199254740991
                            },
                            {
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "required": [
                        "downloads30d",
                        "stars"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "sigil": {
                  "type": "object",
                  "properties": {
                    "glyph": {
                      "type": "string",
                      "pattern": "^[0-3]{7}$"
                    },
                    "phase": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 359
                    },
                    "publicRoutes": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "glyph",
                    "phase",
                    "publicRoutes"
                  ],
                  "additionalProperties": false
                },
                "links": {
                  "type": "object",
                  "properties": {
                    "page": {
                      "type": "string"
                    },
                    "md": {
                      "type": "string"
                    },
                    "json": {
                      "type": "string"
                    },
                    "facts": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "npm": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "repo": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "docs": {
                      "type": [
                        "string",
                        "null"
                      ]
                    }
                  },
                  "required": [
                    "page",
                    "md",
                    "json",
                    "facts",
                    "npm",
                    "repo",
                    "docs"
                  ],
                  "additionalProperties": false
                },
                "addedAt": {
                  "type": "string",
                  "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
                },
                "updatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
                },
                "_meta": {
                  "default": {},
                  "type": "object",
                  "propertyNames": {
                    "type": "string"
                  },
                  "additionalProperties": {}
                }
              },
              "required": [
                "locator",
                "path",
                "npm",
                "github",
                "repoPath",
                "kind",
                "type",
                "enterprise",
                "title",
                "summary",
                "whenToUse",
                "whenNotToUse",
                "category",
                "tags",
                "providers",
                "moduleIds",
                "requires",
                "replaces",
                "slotConflicts",
                "renamedFrom",
                "supersededBy",
                "alternatives",
                "status",
                "listed",
                "featured",
                "license",
                "version",
                "identity",
                "compat",
                "anatomy",
                "signals",
                "tier",
                "quality",
                "agentPolicy",
                "install",
                "stats",
                "sigil",
                "links",
                "addedAt",
                "updatedAt",
                "_meta"
              ],
              "additionalProperties": false
            },
            {
              "type": "null"
            }
          ]
        },
        "candidates": {
          "maxItems": 10,
          "type": "array",
          "items": {
            "type": "string",
            "pattern": "^(npm:(?:@[a-z0-9-~][a-z0-9-._~]*\\/)?[a-z0-9-~][a-z0-9-._~]*|github:[A-Za-z0-9-]{1,39}\\/[A-Za-z0-9._-]{1,100})$"
          }
        },
        "anatomy": {
          "anyOf": [
            {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "maxLength": 64,
                    "pattern": "^[a-z][a-z0-9]*(?:_[a-z0-9]+)*$"
                  },
                  "title": {
                    "anyOf": [
                      {
                        "type": "string",
                        "maxLength": 80
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "description": {
                    "anyOf": [
                      {
                        "type": "string",
                        "maxLength": 300
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "requires": {
                    "maxItems": 30,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "raw": {
                          "type": "string",
                          "maxLength": 200
                        },
                        "resolvesTo": {
                          "type": [
                            "string",
                            "null"
                          ]
                        }
                      },
                      "required": [
                        "raw",
                        "resolvesTo"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "ejectable": {
                    "type": [
                      "boolean",
                      "null"
                    ]
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "entities": {
                        "maxItems": 200,
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "maxLength": 120
                            },
                            "table": {
                              "anyOf": [
                                {
                                  "type": "string",
                                  "maxLength": 80
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "src": {
                              "anyOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "file": {
                                      "type": "string",
                                      "maxLength": 300
                                    },
                                    "line": {
                                      "type": "integer",
                                      "exclusiveMinimum": 0,
                                      "maximum": 9007199254740991
                                    }
                                  },
                                  "required": [
                                    "file",
                                    "line"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            }
                          },
                          "required": [
                            "id",
                            "table",
                            "src"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "migrations": {
                        "type": "object",
                        "properties": {
                          "count": {
                            "type": "integer",
                            "minimum": -9007199254740991,
                            "maximum": 9007199254740991
                          },
                          "first": {
                            "anyOf": [
                              {
                                "type": "string",
                                "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "last": {
                            "anyOf": [
                              {
                                "type": "string",
                                "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          }
                        },
                        "required": [
                          "count",
                          "first",
                          "last"
                        ],
                        "additionalProperties": false
                      },
                      "customEntities": {
                        "type": "integer",
                        "minimum": -9007199254740991,
                        "maximum": 9007199254740991
                      }
                    },
                    "required": [
                      "entities",
                      "migrations",
                      "customEntities"
                    ],
                    "additionalProperties": false
                  },
                  "http": {
                    "type": "object",
                    "properties": {
                      "routes": {
                        "maxItems": 500,
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "method": {
                              "type": "string",
                              "enum": [
                                "GET",
                                "POST",
                                "PUT",
                                "PATCH",
                                "DELETE"
                              ]
                            },
                            "path": {
                              "type": "string",
                              "maxLength": 200,
                              "pattern": "^\\/[a-zA-Z0-9/_\\-\\[\\].]*$"
                            },
                            "requireAuth": {
                              "type": [
                                "boolean",
                                "null"
                              ]
                            },
                            "requireFeatures": {
                              "maxItems": 10,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "maxLength": 100,
                                "pattern": "^[a-z0-9_]+(\\.[A-Za-z0-9_*-]+){1,5}$"
                              }
                            },
                            "hasOpenApi": {
                              "type": "boolean"
                            },
                            "src": {
                              "type": "object",
                              "properties": {
                                "file": {
                                  "type": "string",
                                  "maxLength": 300
                                },
                                "line": {
                                  "type": "integer",
                                  "exclusiveMinimum": 0,
                                  "maximum": 9007199254740991
                                }
                              },
                              "required": [
                                "file",
                                "line"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "required": [
                            "method",
                            "path",
                            "requireAuth",
                            "requireFeatures",
                            "hasOpenApi",
                            "src"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "legacyRouteFiles": {
                        "type": "integer",
                        "minimum": -9007199254740991,
                        "maximum": 9007199254740991
                      },
                      "authResolved": {
                        "type": "number",
                        "minimum": 0,
                        "maximum": 1
                      }
                    },
                    "required": [
                      "routes",
                      "legacyRouteFiles",
                      "authResolved"
                    ],
                    "additionalProperties": false
                  },
                  "security": {
                    "type": "object",
                    "properties": {
                      "aclFeatures": {
                        "maxItems": 200,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "maxLength": 100,
                          "pattern": "^[a-z0-9_]+(\\.[A-Za-z0-9_*-]+){1,5}$"
                        }
                      },
                      "setupDefaultRoleFeatures": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "aclFeatures",
                      "setupDefaultRoleFeatures"
                    ],
                    "additionalProperties": false
                  },
                  "events": {
                    "type": "object",
                    "properties": {
                      "emits": {
                        "maxItems": 200,
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "maxLength": 100,
                              "pattern": "^[a-z0-9_]+(\\.[A-Za-z0-9_*-]+){1,5}$"
                            },
                            "src": {
                              "anyOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "file": {
                                      "type": "string",
                                      "maxLength": 300
                                    },
                                    "line": {
                                      "type": "integer",
                                      "exclusiveMinimum": 0,
                                      "maximum": 9007199254740991
                                    }
                                  },
                                  "required": [
                                    "file",
                                    "line"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            }
                          },
                          "required": [
                            "id",
                            "src"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "subscribes": {
                        "maxItems": 200,
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "event": {
                              "anyOf": [
                                {
                                  "type": "string",
                                  "maxLength": 100,
                                  "pattern": "^[a-z0-9_]+(\\.[A-Za-z0-9_*-]+){1,5}$"
                                },
                                {
                                  "type": "string",
                                  "const": "*"
                                }
                              ]
                            },
                            "src": {
                              "anyOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "file": {
                                      "type": "string",
                                      "maxLength": 300
                                    },
                                    "line": {
                                      "type": "integer",
                                      "exclusiveMinimum": 0,
                                      "maximum": 9007199254740991
                                    }
                                  },
                                  "required": [
                                    "file",
                                    "line"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            }
                          },
                          "required": [
                            "event",
                            "src"
                          ],
                          "additionalProperties": false
                        }
                      }
                    },
                    "required": [
                      "emits",
                      "subscribes"
                    ],
                    "additionalProperties": false
                  },
                  "ui": {
                    "type": "object",
                    "properties": {
                      "backendPages": {
                        "maxItems": 200,
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "path": {
                              "type": "string",
                              "maxLength": 200,
                              "pattern": "^\\/[a-zA-Z0-9/_\\-\\[\\].]*$"
                            },
                            "requireFeatures": {
                              "maxItems": 10,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "maxLength": 100,
                                "pattern": "^[a-z0-9_]+(\\.[A-Za-z0-9_*-]+){1,5}$"
                              }
                            }
                          },
                          "required": [
                            "path",
                            "requireFeatures"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "frontendPages": {
                        "maxItems": 200,
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "path": {
                              "type": "string",
                              "maxLength": 200,
                              "pattern": "^\\/[a-zA-Z0-9/_\\-\\[\\].]*$"
                            }
                          },
                          "required": [
                            "path"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "widgets": {
                        "type": "integer",
                        "minimum": -9007199254740991,
                        "maximum": 9007199254740991
                      },
                      "extensionHosts": {
                        "type": "integer",
                        "minimum": -9007199254740991,
                        "maximum": 9007199254740991
                      }
                    },
                    "required": [
                      "backendPages",
                      "frontendPages",
                      "widgets",
                      "extensionHosts"
                    ],
                    "additionalProperties": false
                  },
                  "background": {
                    "type": "object",
                    "properties": {
                      "workers": {
                        "maxItems": 100,
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "queue": {
                              "type": "string",
                              "pattern": "^[a-z0-9_.:-]{1,80}$"
                            }
                          },
                          "required": [
                            "queue"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "cli": {
                        "maxItems": 100,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "pattern": "^[a-z0-9:_-]{1,60}$"
                        }
                      }
                    },
                    "required": [
                      "workers",
                      "cli"
                    ],
                    "additionalProperties": false
                  },
                  "ai": {
                    "type": "object",
                    "properties": {
                      "tools": {
                        "maxItems": 100,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "pattern": "^[a-z0-9_.-]{1,80}$"
                        }
                      },
                      "agents": {
                        "maxItems": 50,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "pattern": "^[a-z0-9_.-]{1,80}$"
                        }
                      }
                    },
                    "required": [
                      "tools",
                      "agents"
                    ],
                    "additionalProperties": false
                  },
                  "config": {
                    "type": "object",
                    "properties": {
                      "credentials": {
                        "maxItems": 30,
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "key": {
                              "type": "string",
                              "pattern": "^[a-zA-Z0-9_]{1,64}$"
                            },
                            "type": {
                              "type": "string",
                              "maxLength": 20
                            },
                            "required": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "key",
                            "type",
                            "required"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "env": {
                        "maxItems": 100,
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string",
                              "pattern": "^[A-Z][A-Z0-9_]{1,63}$"
                            },
                            "src": {
                              "type": "object",
                              "properties": {
                                "file": {
                                  "type": "string",
                                  "maxLength": 300
                                },
                                "line": {
                                  "type": "integer",
                                  "exclusiveMinimum": 0,
                                  "maximum": 9007199254740991
                                }
                              },
                              "required": [
                                "file",
                                "line"
                              ],
                              "additionalProperties": false
                            },
                            "ifSet": {
                              "type": "boolean",
                              "const": true
                            }
                          },
                          "required": [
                            "name",
                            "src"
                          ],
                          "additionalProperties": false
                        }
                      }
                    },
                    "required": [
                      "credentials",
                      "env"
                    ],
                    "additionalProperties": false
                  },
                  "network": {
                    "type": "object",
                    "properties": {
                      "hosts": {
                        "maxItems": 100,
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "host": {
                              "type": "string",
                              "maxLength": 253,
                              "pattern": "^(\\*\\.)?([a-z0-9-]{1,63}\\.)+[a-z]{2,63}$"
                            },
                            "src": {
                              "type": "object",
                              "properties": {
                                "file": {
                                  "type": "string",
                                  "maxLength": 300
                                },
                                "line": {
                                  "type": "integer",
                                  "exclusiveMinimum": 0,
                                  "maximum": 9007199254740991
                                }
                              },
                              "required": [
                                "file",
                                "line"
                              ],
                              "additionalProperties": false
                            },
                            "confidence": {
                              "type": "string",
                              "enum": [
                                "high",
                                "low"
                              ]
                            }
                          },
                          "required": [
                            "host",
                            "src",
                            "confidence"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "undeclared": {
                        "maxItems": 100,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "maxLength": 253,
                          "pattern": "^(\\*\\.)?([a-z0-9-]{1,63}\\.)+[a-z]{2,63}$"
                        }
                      }
                    },
                    "required": [
                      "hosts",
                      "undeclared"
                    ],
                    "additionalProperties": false
                  },
                  "extends": {
                    "maxItems": 200,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "kind": {
                          "type": "string",
                          "maxLength": 40
                        },
                        "target": {
                          "type": "string",
                          "maxLength": 120
                        }
                      },
                      "required": [
                        "kind",
                        "target"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "omImports": {
                    "type": "object",
                    "propertyNames": {
                      "type": "string"
                    },
                    "additionalProperties": {
                      "type": "object",
                      "propertyNames": {
                        "type": "string"
                      },
                      "additionalProperties": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "maxLength": 120
                        }
                      }
                    }
                  },
                  "collisionKeys": {
                    "type": "object",
                    "properties": {
                      "moduleId": {
                        "type": "string",
                        "maxLength": 64,
                        "pattern": "^[a-z][a-z0-9]*(?:_[a-z0-9]+)*$"
                      },
                      "tables": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      "aclFeatures": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "maxLength": 100,
                          "pattern": "^[a-z0-9_]+(\\.[A-Za-z0-9_*-]+){1,5}$"
                        }
                      },
                      "eventIds": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "maxLength": 100,
                          "pattern": "^[a-z0-9_]+(\\.[A-Za-z0-9_*-]+){1,5}$"
                        }
                      },
                      "backendRoutes": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "maxLength": 200,
                          "pattern": "^\\/[a-zA-Z0-9/_\\-\\[\\].]*$"
                        }
                      }
                    },
                    "required": [
                      "moduleId",
                      "tables",
                      "aclFeatures",
                      "eventIds",
                      "backendRoutes"
                    ],
                    "additionalProperties": false
                  },
                  "publicRoutes": {
                    "type": "integer",
                    "minimum": -9007199254740991,
                    "maximum": 9007199254740991
                  },
                  "glyph": {
                    "type": "string",
                    "pattern": "^[0-3]{7}$"
                  },
                  "lint": {
                    "maxItems": 100,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "severity": {
                          "type": "string",
                          "enum": [
                            "error",
                            "warn",
                            "info"
                          ]
                        },
                        "message": {
                          "type": "string",
                          "maxLength": 300
                        },
                        "anchor": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "src": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "file": {
                                  "type": "string",
                                  "maxLength": 300
                                },
                                "line": {
                                  "type": "integer",
                                  "exclusiveMinimum": 0,
                                  "maximum": 9007199254740991
                                }
                              },
                              "required": [
                                "file",
                                "line"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "required": [
                        "code",
                        "severity",
                        "message",
                        "anchor",
                        "src"
                      ],
                      "additionalProperties": false
                    }
                  }
                },
                "required": [
                  "id",
                  "title",
                  "description",
                  "requires",
                  "ejectable",
                  "data",
                  "http",
                  "security",
                  "events",
                  "ui",
                  "background",
                  "ai",
                  "config",
                  "network",
                  "extends",
                  "omImports",
                  "collisionKeys",
                  "publicRoutes",
                  "glyph",
                  "lint"
                ],
                "additionalProperties": false
              }
            },
            {
              "type": "null"
            }
          ]
        },
        "warnings": {
          "maxItems": 10,
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 200
          }
        },
        "untrusted": {
          "anyOf": [
            {
              "type": "object",
              "properties": {
                "source": {
                  "type": "string",
                  "const": "readme"
                },
                "notice": {
                  "type": "string"
                },
                "text": {
                  "type": "string",
                  "maxLength": 8000
                }
              },
              "required": [
                "source",
                "notice",
                "text"
              ],
              "additionalProperties": false
            },
            {
              "type": "null"
            }
          ]
        },
        "card": {
          "anyOf": [
            {
              "type": "string",
              "format": "uri"
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "required": [
        "entry",
        "candidates",
        "anatomy",
        "warnings",
        "untrusted",
        "card"
      ],
      "additionalProperties": false
    },
    "CheckCompatInput": {
      "type": "object",
      "properties": {
        "refs": {
          "minItems": 1,
          "maxItems": 10,
          "type": "array",
          "items": {
            "type": "string",
            "minLength": 1,
            "maxLength": 220
          }
        },
        "omVersion": {
          "type": "string",
          "minLength": 1,
          "maxLength": 40
        }
      },
      "required": [
        "refs",
        "omVersion"
      ]
    },
    "CheckCompatOutput": {
      "type": "object",
      "properties": {
        "line": {
          "anyOf": [
            {
              "type": "string",
              "pattern": "^(\\d+\\.\\d+|next)$"
            },
            {
              "type": "null"
            }
          ]
        },
        "omVersion": {
          "type": "string"
        },
        "results": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "ref": {
                "type": "string"
              },
              "locator": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^(npm:(?:@[a-z0-9-~][a-z0-9-._~]*\\/)?[a-z0-9-~][a-z0-9-._~]*|github:[A-Za-z0-9-]{1,39}\\/[A-Za-z0-9._-]{1,100})$"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "version": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^\\d+\\.\\d+\\.\\d+(?:-[0-9A-Za-z.-]+)?$"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "builtFor": {
                "type": "object",
                "properties": {
                  "range": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "kind": {
                    "type": "string",
                    "enum": [
                      "exact-pin",
                      "caret-0x",
                      "bounded",
                      "open",
                      "star",
                      "missing"
                    ]
                  },
                  "satisfied": {
                    "type": "boolean"
                  },
                  "version": {
                    "description": "The version whose peer declaration range, kind and satisfied describe: the result's `version` (what a new app has on the line), unless the catalog has not read that version's peers (a develop snapshot on next), then the version a new app has on the latest line, and a note says so.",
                    "anyOf": [
                      {
                        "type": "string",
                        "pattern": "^\\d+\\.\\d+\\.\\d+(?:-[0-9A-Za-z.-]+)?$"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": [
                  "range",
                  "kind",
                  "satisfied"
                ],
                "additionalProperties": false
              },
              "fitsStatically": {
                "anyOf": [
                  {
                    "type": "string",
                    "enum": [
                      "ok",
                      "drift",
                      "no-fit",
                      "unknown"
                    ]
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "receipt": {
                "anyOf": [
                  {
                    "type": "object",
                    "properties": {
                      "status": {
                        "type": "string",
                        "enum": [
                          "verified",
                          "broken",
                          "quarantine",
                          "harness-red",
                          "infra-error",
                          "untested",
                          "skipped"
                        ]
                      },
                      "step": {
                        "anyOf": [
                          {
                            "type": "string",
                            "enum": [
                              "scaffold",
                              "install",
                              "add",
                              "generate",
                              "typecheck",
                              "initialize",
                              "build",
                              "start",
                              "smoke"
                            ]
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "omVersion": {
                        "type": "string",
                        "pattern": "^\\d+\\.\\d+\\.\\d+(?:-[0-9A-Za-z.-]+)?$"
                      },
                      "moduleVersion": {
                        "anyOf": [
                          {
                            "type": "string",
                            "pattern": "^\\d+\\.\\d+\\.\\d+(?:-[0-9A-Za-z.-]+)?$"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "at": {
                        "anyOf": [
                          {
                            "type": "string",
                            "format": "date-time",
                            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "receipt": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "since": {
                        "anyOf": [
                          {
                            "type": "string",
                            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "precheck": {
                        "anyOf": [
                          {
                            "type": "string",
                            "enum": [
                              "pass",
                              "fail"
                            ]
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "patches": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      "finding": {
                        "description": "Why the failed step of a broken cell failed, one sentence, when its excerpt says it plainly. The sentence the module page prints under its strip. Absent: no explanation (the receipt has the error).",
                        "type": "string",
                        "maxLength": 300
                      },
                      "installs": {
                        "description": "Set when the cell's receipt judged another version (moduleVersion) than the one a fresh app installs on the line: that version. The cell is then no verdict on the line; status is the other version's, and modules.json signals.receipt[line] says untested.",
                        "type": "string",
                        "pattern": "^\\d+\\.\\d+\\.\\d+(?:-[0-9A-Za-z.-]+)?$"
                      }
                    },
                    "required": [
                      "status",
                      "step",
                      "omVersion",
                      "moduleVersion",
                      "at",
                      "receipt",
                      "since",
                      "precheck",
                      "patches"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "status": {
                "anyOf": [
                  {
                    "type": "string",
                    "enum": [
                      "verified",
                      "broken",
                      "quarantine",
                      "harness-red",
                      "infra-error",
                      "untested",
                      "skipped"
                    ]
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "recommendedVersion": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^\\d+\\.\\d+\\.\\d+(?:-[0-9A-Za-z.-]+)?$"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "installableFrom": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "agentPolicy": {
                "type": "object",
                "properties": {
                  "decision": {
                    "type": "string",
                    "enum": [
                      "allow",
                      "ask",
                      "refuse"
                    ]
                  },
                  "reasons": {
                    "maxItems": 10,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "text": {
                          "type": "string",
                          "maxLength": 160
                        }
                      },
                      "required": [
                        "code",
                        "text"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "until": {
                    "type": "string",
                    "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
                  },
                  "consentText": {
                    "type": "string",
                    "maxLength": 160
                  }
                },
                "required": [
                  "decision",
                  "reasons"
                ],
                "additionalProperties": false
              },
              "receiptUrl": {
                "anyOf": [
                  {
                    "type": "string",
                    "format": "uri"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "notes": {
                "maxItems": 5,
                "type": "array",
                "items": {
                  "type": "string",
                  "maxLength": 200
                }
              }
            },
            "required": [
              "ref",
              "locator",
              "version",
              "builtFor",
              "fitsStatically",
              "receipt",
              "status",
              "recommendedVersion",
              "installableFrom",
              "agentPolicy",
              "receiptUrl",
              "notes"
            ],
            "additionalProperties": false
          }
        },
        "receiptSource": {
          "anyOf": [
            {
              "type": "string",
              "enum": [
                "ci",
                "preview"
              ]
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "required": [
        "line",
        "omVersion",
        "results"
      ],
      "additionalProperties": false
    },
    "PlanInstallInput": {
      "type": "object",
      "properties": {
        "refs": {
          "minItems": 1,
          "maxItems": 10,
          "type": "array",
          "items": {
            "type": "string",
            "minLength": 1,
            "maxLength": 220
          }
        },
        "app": {
          "type": "object",
          "properties": {
            "omVersion": {
              "type": "string",
              "maxLength": 40
            },
            "enabledModules": {
              "default": [],
              "maxItems": 200,
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "maxLength": 64,
                    "pattern": "^[a-z][a-z0-9]*(?:_[a-z0-9]+)*$"
                  },
                  "from": {
                    "type": "string",
                    "maxLength": 214
                  }
                },
                "required": [
                  "id",
                  "from"
                ]
              }
            }
          },
          "required": [
            "omVersion"
          ]
        }
      },
      "required": [
        "refs"
      ]
    },
    "PlanInstallOutput": {
      "type": "object",
      "properties": {
        "line": {
          "anyOf": [
            {
              "type": "string",
              "pattern": "^(\\d+\\.\\d+|next)$"
            },
            {
              "type": "null"
            }
          ]
        },
        "order": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "locator": {
                "type": "string",
                "pattern": "^(npm:(?:@[a-z0-9-~][a-z0-9-._~]*\\/)?[a-z0-9-~][a-z0-9-._~]*|github:[A-Za-z0-9-]{1,39}\\/[A-Za-z0-9._-]{1,100})$"
              },
              "version": {
                "type": "string",
                "pattern": "^\\d+\\.\\d+\\.\\d+(?:-[0-9A-Za-z.-]+)?$"
              },
              "moduleIds": {
                "type": "array",
                "items": {
                  "type": "string",
                  "maxLength": 64,
                  "pattern": "^[a-z][a-z0-9]*(?:_[a-z0-9]+)*$"
                }
              },
              "reason": {
                "type": "string",
                "enum": [
                  "requested",
                  "required"
                ]
              },
              "requiredBy": {
                "type": "array",
                "items": {
                  "type": "string",
                  "pattern": "^(npm:(?:@[a-z0-9-~][a-z0-9-._~]*\\/)?[a-z0-9-~][a-z0-9-._~]*|github:[A-Za-z0-9-]{1,39}\\/[A-Za-z0-9._-]{1,100})$"
                }
              }
            },
            "required": [
              "locator",
              "version",
              "moduleIds",
              "reason",
              "requiredBy"
            ],
            "additionalProperties": false
          }
        },
        "builtInNeeded": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "maxLength": 64,
                "pattern": "^[a-z][a-z0-9]*(?:_[a-z0-9]+)*$"
              },
              "enabled": {
                "type": [
                  "boolean",
                  "null"
                ]
              },
              "command": {
                "type": "string"
              },
              "inNewApp": {
                "description": "Whether a new app (from the classic preset) of the line has the module on. Absent: not known.",
                "type": "boolean"
              }
            },
            "required": [
              "id",
              "enabled",
              "command"
            ],
            "additionalProperties": false
          }
        },
        "adds": {
          "type": "object",
          "properties": {
            "tables": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "routes": {
              "type": "integer",
              "minimum": -9007199254740991,
              "maximum": 9007199254740991
            },
            "publicRoutes": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "aclFeatures": {
              "type": "array",
              "items": {
                "type": "string",
                "maxLength": 100,
                "pattern": "^[a-z0-9_]+(\\.[A-Za-z0-9_*-]+){1,5}$"
              }
            },
            "eventsEmitted": {
              "type": "integer",
              "minimum": -9007199254740991,
              "maximum": 9007199254740991
            },
            "eventsConsumed": {
              "type": "integer",
              "minimum": -9007199254740991,
              "maximum": 9007199254740991
            },
            "backendPages": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "widgets": {
              "type": "integer",
              "minimum": -9007199254740991,
              "maximum": 9007199254740991
            },
            "aiTools": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "required": [
            "tables",
            "routes",
            "publicRoutes",
            "aclFeatures",
            "eventsEmitted",
            "eventsConsumed",
            "backendPages",
            "widgets",
            "aiTools"
          ],
          "additionalProperties": false
        },
        "needs": {
          "type": "object",
          "properties": {
            "env": {
              "type": "array",
              "items": {
                "type": "string",
                "pattern": "^[A-Z][A-Z0-9_]{1,63}$"
              }
            },
            "envIfSet": {
              "type": "array",
              "items": {
                "type": "string",
                "pattern": "^[A-Z][A-Z0-9_]{1,63}$"
              }
            },
            "credentials": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "key": {
                    "type": "string"
                  },
                  "type": {
                    "type": "string"
                  },
                  "required": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "key",
                  "type",
                  "required"
                ],
                "additionalProperties": false
              }
            },
            "hosts": {
              "type": "array",
              "items": {
                "type": "string",
                "maxLength": 253,
                "pattern": "^(\\*\\.)?([a-z0-9-]{1,63}\\.)+[a-z]{2,63}$"
              }
            }
          },
          "required": [
            "env",
            "credentials",
            "hosts"
          ],
          "additionalProperties": false
        },
        "conflicts": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "kind": {
                "type": "string",
                "enum": [
                  "slot",
                  "replaces",
                  "table",
                  "route",
                  "acl",
                  "event"
                ]
              },
              "detail": {
                "type": "string",
                "maxLength": 200
              },
              "with": {
                "type": "string"
              }
            },
            "required": [
              "kind",
              "detail",
              "with"
            ],
            "additionalProperties": false
          }
        },
        "license": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "locator": {
                "type": "string",
                "pattern": "^(npm:(?:@[a-z0-9-~][a-z0-9-._~]*\\/)?[a-z0-9-~][a-z0-9-._~]*|github:[A-Za-z0-9-]{1,39}\\/[A-Za-z0-9._-]{1,100})$"
              },
              "spdx": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "kind": {
                "type": "string",
                "enum": [
                  "osi",
                  "proprietary",
                  "enterprise",
                  "unknown"
                ]
              }
            },
            "required": [
              "locator",
              "spdx",
              "kind"
            ],
            "additionalProperties": false
          }
        },
        "commands": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "then": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "agentPolicy": {
          "type": "object",
          "properties": {
            "decision": {
              "type": "string",
              "enum": [
                "allow",
                "ask",
                "refuse"
              ]
            },
            "reasons": {
              "maxItems": 10,
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "code": {
                    "type": "string"
                  },
                  "text": {
                    "type": "string",
                    "maxLength": 160
                  }
                },
                "required": [
                  "code",
                  "text"
                ],
                "additionalProperties": false
              }
            },
            "until": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
            },
            "consentText": {
              "type": "string",
              "maxLength": 160
            }
          },
          "required": [
            "decision",
            "reasons"
          ],
          "additionalProperties": false
        },
        "consentText": {
          "type": [
            "string",
            "null"
          ]
        },
        "untrustedNotice": {
          "type": "string"
        },
        "emptyPreset": {
          "description": "Only when app.enabledModules is not given: commands and then for an app from the empty preset. commands and then above are for a new app (from the classic preset, what create-mercato-app makes without --preset).",
          "type": "object",
          "properties": {
            "commands": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "then": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "aclFeatures": {
              "type": "array",
              "items": {
                "type": "string",
                "maxLength": 100,
                "pattern": "^[a-z0-9_]+(\\.[A-Za-z0-9_*-]+){1,5}$"
              }
            }
          },
          "required": [
            "commands",
            "then"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "line",
        "order",
        "builtInNeeded",
        "adds",
        "needs",
        "conflicts",
        "license",
        "commands",
        "then",
        "agentPolicy",
        "consentText",
        "untrustedNotice"
      ],
      "additionalProperties": false
    },
    "GetChangesInput": {
      "type": "object",
      "properties": {
        "since": {
          "anyOf": [
            {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
            },
            {
              "type": "string",
              "format": "date-time",
              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
            }
          ],
          "description": "A date (2026-10-23, from 00:00 UTC) or an ISO date-time (2026-10-23T08:00:00Z)."
        },
        "types": {
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "new-entry",
              "new-version",
              "receipt-transition",
              "tier-change",
              "status-change",
              "quality-granted",
              "quality-revoked"
            ]
          }
        },
        "limit": {
          "default": 100,
          "type": "integer",
          "minimum": 1,
          "maximum": 200
        }
      },
      "required": [
        "since"
      ]
    },
    "GetChangesOutput": {
      "type": "object",
      "properties": {
        "changes": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "at": {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "new-entry",
                  "new-version",
                  "receipt-transition",
                  "tier-change",
                  "status-change",
                  "quality-granted",
                  "quality-revoked"
                ]
              },
              "locator": {
                "type": "string",
                "pattern": "^(npm:(?:@[a-z0-9-~][a-z0-9-._~]*\\/)?[a-z0-9-~][a-z0-9-._~]*|github:[A-Za-z0-9-]{1,39}\\/[A-Za-z0-9._-]{1,100})$"
              },
              "line": {
                "type": "string",
                "pattern": "^(\\d+\\.\\d+|next)$"
              },
              "from": {
                "type": "string"
              },
              "to": {
                "type": "string"
              },
              "version": {
                "type": "string",
                "pattern": "^\\d+\\.\\d+\\.\\d+(?:-[0-9A-Za-z.-]+)?$"
              },
              "reason": {
                "description": "Why the change happened when the module did not change. preset-model: the main verdict moved from receipts of the empty preset to receipts of a new app (classic) on 24 Oct; left out of /changes.json and /feed.xml.",
                "type": "string",
                "enum": [
                  "preset-model"
                ]
              }
            },
            "required": [
              "at",
              "type",
              "locator"
            ],
            "additionalProperties": false
          }
        },
        "truncated": {
          "type": "boolean"
        },
        "generatedAt": {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
        }
      },
      "required": [
        "changes",
        "truncated",
        "generatedAt"
      ],
      "additionalProperties": false
    }
  },
  "x-tools": {
    "search_modules": {
      "input": "#/$defs/SearchModulesInput",
      "output": "#/$defs/SearchModulesOutput"
    },
    "get_module": {
      "input": "#/$defs/GetModuleInput",
      "output": "#/$defs/GetModuleOutput"
    },
    "check_compat": {
      "input": "#/$defs/CheckCompatInput",
      "output": "#/$defs/CheckCompatOutput"
    },
    "plan_install": {
      "input": "#/$defs/PlanInstallInput",
      "output": "#/$defs/PlanInstallOutput"
    },
    "get_changes": {
      "input": "#/$defs/GetChangesInput",
      "output": "#/$defs/GetChangesOutput"
    }
  }
}
