MData 0.1.0
dotnet add package MData --version 0.1.0
NuGet\Install-Package MData -Version 0.1.0
<PackageReference Include="MData" Version="0.1.0" />
<PackageVersion Include="MData" Version="0.1.0" />
<PackageReference Include="MData" />
paket add MData --version 0.1.0
#r "nuget: MData, 0.1.0"
#:package MData@0.1.0
#addin nuget:?package=MData&version=0.1.0
#tool nuget:?package=MData&version=0.1.0
MData (Markdown Data)
MData (short for Markdown Data) is a structured data format that's easy for humans and AI to read.
I developed this format to enable rigorous, testable interoperability for data that is passed between AI and native code.
It renders in any Markdown viewer, minimizes token use, and can be parsed into typed objects by any MData implementation.
Goals:
- Portability — Match JSON: plain text, language-agnostic, trivially transmissible.
- Token Efficiency — Reduced syntactical overhead means faster and cheaper AI operations.
- Human Readability — Documents read like technical documents, not serialized objects.
- Minimal Syntax — Five constructs, small enough to memorize.
- Round-trip Idempotence - Serialization is canonical: deserialize then serialize produces identical output.
Philosophy: The schema lives with the code; the document stays clean. Type information, nullability, and collection semantics are expressed in the schema, not in the document syntax. This keeps documents minimal and human-legible, and keeps the format stable across schema evolution.
Format at a Glance
| Construct | Syntax | Meaning |
|---|---|---|
| Scalar | key: value |
Property |
| Array | key: followed by - item lines |
List of scalars |
| Object scope | # Heading |
Nested object or collection element |
| Multiline string | key: followed by > lines |
Multi-line string property |
| Comment | ``` fenced block ``` |
Ignored by parser |
Heading level encodes nesting depth. Whether a heading is a single object or one element in a collection is determined entirely by the schema.
Example
MData:
# Config
name: my-app
version: 2
# Servers
## Server
host: localhost
port: 8080
## Server
host: db.internal
port: 5432
C#:
[MData]
public class Config
{
[Scalar] public string Name { get; set; } = "";
[Scalar] public int Version { get; set; }
[Child] public List<Server> Servers { get; set; } = [];
}
[MData(Collection = true)]
public class Server
{
[Scalar] public string Host { get; set; } = "";
[Scalar] public int Port { get; set; }
}
Documentation
| Document | Contents |
|---|---|
| docs/spec.md | Format specification |
| docs/schema.md | Schema definition, self-describing format reference |
| docs/architecture.md | Design decisions, implementation guidance |
| docs/json-to-mdata.md | JSON → MData conversion reference (AI-oriented) |
| docs/csharp.md | C# implementation reference — install, attributes, serializer API |
Related Projects
Several projects share a similar design space with MData. The distinctions below are intended to help you choose the right tool for your use case.
Markform
Markform is a structured Markdown document format designed around a form-filling workflow. Documents define typed, validated fields (via YAML frontmatter and HTML comment-style tags) that can be filled by humans via CLI/web UI or by AI agents via tool calls. It includes JSON Schema export and Vercel AI SDK integration.
MData is a serialization format for structured data exchange. It does not model a workflow, collect input, or validate against a schema at the document level — schema semantics live in host-language code. If you need a form-as-document workflow for agents, Markform is purpose-built for that; if you need a compact, round-trippable wire format for typed objects, MData is the closer fit.
Chartifact
Chartifact (Microsoft) is a document presentation format for interactive data reports, dashboards, and slideshows. Documents embed reactive components (charts, tables, Mermaid diagrams) as fenced JSON blocks inside Markdown. A runtime renders and synchronizes components via shared variables.
MData has no runtime and no rendering semantics. It encodes plain structured data — scalars, arrays, and nested objects — with no visualization layer. If you need a shareable interactive document with charts and reactive state, Chartifact addresses that; if you need a minimal data encoding format for programmatic serialization, MData is the narrower tool.
The MDATA Cognitive Model
The MDATA Cognitive Model (Yan Jia et al., Springer) is an academic knowledge representation framework. MDATA here stands for Multi-dimensional Data Association and inTelligent Analysis. It is a temporal and spatial knowledge graph model that extends traditional knowledge graphs with spatiotemporal characteristics, and is applied to domains such as cybersecurity and open-source intelligence analysis.
Despite the shared acronym, the two projects are unrelated in purpose and origin. MData (Markdown Data) is a developer-facing text serialization format with no connection to knowledge graph theory or the academic MDATA research program.
License
MIT
Authors
Created by Ted Brown, coffee, and Claude. 2026
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.1.0 | 109 | 3/25/2026 |