# UFN — USE Frame Notation > A flat, single-line, token-economical notation for LLM structured output — an > alternative to JSON for the agent edge. Streamable, robust to truncation, > dictionary-driven. Storage stays JSON; UFN is the wire format an LLM emits and a > parser ingests. ~59% smaller than compact JSON on the structural portion. This is an open standard of the kova ecosystem (Apache 2.0). UFN's consumers are LLM agents, so the standard is published in agent-consumable form. ## Standard - [UFN v2 specification](https://ufn.kovanex.dev/): the full standard, RFC-style. - [Full specification, plain text](https://ufn.kovanex.dev/llms-full.txt): the entire spec inlined for single-fetch ingestion. - [Starter dictionary, JSON](https://ufn.kovanex.dev/ufn.dict.json): machine-readable control tokens, key/enum codes, and profiles (task edge + game frame). ## How to emit UFN (producer quickstart) - One line. Records are `;`-separated (tight). A `key:value` token is a field (split on the FIRST `:`). - A bare token (no `:`, not starting `/`) OPENS a scope of that class; a bare `/` CLOSES the nearest open scope. - Everything after the first top-level ` ::: ` is verbatim prose — no escaping there. - Only escapes: `\;` `\/` `\\`. Nothing else needs escaping. - Economy: prefer short ids over UUIDs, enum codes over words, omit defaults, declare the dictionary you used. - A truncated line is fine: unclosed scopes close implicitly; unknown tokens are skipped. ## Versions - v2 (general, nesting-capable): https://ufn.kovanex.dev/#versioning - v1 (flat game-frame profile): https://ufn.kovanex.dev/#versioning ## Related - Kovanex (the platform that emits UFN over ctl/MCP): https://kovanex.dev/