<?xml version="1.0" encoding="UTF-8"?>
<spec xmlns="https://vibevm.org/spec/1">
  <title id="root">Package manifest</title>
  <status stage="doc" state="work" audience="user,dev"/>
  <p p="1">What `org.vibevm.world/omnichannel@1.0.0` declares about itself. Everything on this page is the package's own manifest, read and shown — nothing here is an opinion about the package.</p>
  <table p="2">
    <tr>
      <td>Field</td>
      <td>Value</td>
    </tr>
    <tr>
      <td>Coordinate</td>
      <td>`org.vibevm.world/omnichannel`</td>
    </tr>
    <tr>
      <td>Version</td>
      <td>`1.0.0`</td>
    </tr>
    <tr>
      <td>Kind</td>
      <td>`flow`</td>
    </tr>
    <tr>
      <td>Licence</td>
      <td>UPL-1.0</td>
    </tr>
    <tr>
      <td>Summary</td>
      <td>A capability lives in a library; CLI, TUI, MCP, REST and the rest are thin surfaces over it — none of them the base. Names the surface vocabulary so a project can declare its own floor</td>
    </tr>
    <tr>
      <td>Authors</td>
      <td>Oleg Chirukhin</td>
    </tr>
    <tr>
      <td>Keywords</td>
      <td>architecture, cli, mcp, api, surfaces, discipline</td>
    </tr>
  </table>
  <section id="the-manifest" title="The manifest">
    <fence lang="toml" p="3">[package]
name = "omnichannel"
group = "org.vibevm.world"
kind = "flow"
version = "1.0.0"
epoch = 1
format = "normal"
authors = ["Oleg Chirukhin"]
license = "UPL-1.0"
description = "A capability lives in a library; CLI, TUI, MCP, REST and the rest are thin surfaces over it — none of them the base. Names the surface vocabulary so a project can declare its own floor"
keywords = ["architecture", "cli", "mcp", "api", "surfaces", "discipline"]

[compatibility]
min_vibe_version = "0.1.0"
requires_kinds = []

[boot_snippet]
source = "vibevm/vibespecs/boot/68-flow-omnichannel.xml"
category = "flow"
</fence>
  </section>
</spec>
