{
  "name": "yettagam",
  "description": "yettagam is a digital safe storage box — a set of JSON schemas (yType) that can be instantiated into objects (yObj). part of the metarium.net ecosystem.",
  "url": "https://yettagam.net",
  "ecosystem": "metarium.net",
  "maintained_by": {
    "name": "onemai foundation",
    "url": "https://onemai.net"
  },
  "author": {
    "name": "metakovan",
    "url": "https://metakovan.net"
  },
  "schemas": {
    "meta_schema": "https://yettagam.net/ytype/1.0.1/schema.json",
    "template": "https://yettagam.net/ytype_template/latest/schema.json",
    "types_index": "https://yettagam.net/ytypes/index.json",
    "browse": "https://yettagam.net/schemas/",
    "integration_guide": "https://yettagam.net/integration/"
  },
  "schema_linkage": {
    "meta_schema_validates": "all .ytype type definitions",
    "type_schema_section_validates": "yObj instances of that type",
    "inherits_from_resolves_via": "/ytypes/{name}/ -> latest.ytype"
  },
  "versioning": {
    "axes": {
      "application_version": "the consuming app's own release; independent of the schema",
      "yettagam_schema_version": "the version of the published schema the app is built against — the 'version' field of ytypes/index.json, bumped by each Final YIP"
    },
    "compatibility": "within a major version every change is widening-only (additive, backward compatible); an app pinned to schema 1.x may adopt any 1.y with y>=x at its own pace. a change that could invalidate a previously-valid yObj requires a new MAJOR version of that type; old permalinks are immutable.",
    "stay_current": "consume offline-first and pinned: vendor a mirror, record the pinned schema version, and POLL https://yettagam.net/ytypes/index.json (cheap, cacheable, CORS-open). if a newer same-major manifest 'version' exists, refresh and adopt at your own pace. a new major version is an explicit, opt-in migration.",
    "notification": "pull/poll + version-pin is the normative baseline. a webhook on YIP merge is an optional push layer, not a replacement."
  },
  "yip": {
    "what": "a Yettagam Improvement Proposal — the unit of change for the schema (new yType, new version of a type, or meta-schema change). EIP-like, numbered, public.",
    "ownership": "a yType kept inside an application is PRIVATE intellectual property owned by its creating organization (all rights reserved by default). submitting a YIP is a deliberate, voluntary publication of that type into the open yettagam schema under its open license (Apache-2.0). there is no automatic graduation — a type is public only once its owner chooses to YIP it and the maintainer merges.",
    "process": "https://yettagam.net/yips/yip-0000.md",
    "template": "https://yettagam.net/yips/yip-template.md",
    "index": "https://yettagam.net/yips/index.json",
    "page": "https://yettagam.net/yip/",
    "statuses": ["Draft", "Review", "Last Call", "Final", "Withdrawn", "Rejected"],
    "how_to_submit": [
      "1. read ytypes/index.json (existing types + current schema version) and the meta-schema it references.",
      "2. classify per type: new type (1.0.0) | widening of an existing type (minor bump) | breaking (new major version, keep old permalink).",
      "3. generalize away application-specific assumptions so the type is reusable; keep controlled vocabularies out of the schema (open strings).",
      "4. author each .ytype conforming to the meta-schema; write ytypes/{name}/{version}/{name}.ytype and an identical latest.ytype.",
      "5. validate: every .ytype validates against the meta-schema; each schema section is a runnable JSON Schema (Draft 2020-12 check_schema); each concrete type ships a demo yObj that validates; revisions must be widening-only vs the prior version.",
      "6. update ytypes/index.json (entry + bump 'version'); add yips/yip-XXXX.md and a yips/index.json entry; open a pull request. the maintainer assigns the number and merges."
    ],
    "submit_via": "pull request to https://github.com/MetariumProject/yettagam-net-website"
  },
  "quick_start": "to use yettagam schemas, reference the $schema permalink in your JSON objects. see https://yettagam.net/integration/ for the full guide and https://yettagam.net/yip/ for how the schema evolves."
}
