{
  "schema_version": "1.0.0",
  "core": [
    "ts",
    "level",
    "level_no",
    "logger",
    "msg",
    "app",
    "lang",
    "schema_version"
  ],
  "emit_order": [
    "ts",
    "level",
    "level_no",
    "logger",
    "msg",
    "app",
    "lang",
    "schema_version",
    "module",
    "func",
    "line",
    "thread",
    "process",
    "host",
    "app_version",
    "env",
    "trace_id",
    "span_id",
    "request_id",
    "exception",
    "stack",
    "fields",
    "labels"
  ],
  "fields": {
    "ts": "string",
    "level": "string",
    "level_no": "int",
    "logger": "string",
    "msg": "string",
    "app": "string",
    "lang": "string",
    "schema_version": "string",
    "module": "string?empty",
    "func": "string?empty",
    "line": "int?zero",
    "thread": "string?empty",
    "process": "int?zero",
    "host": "string?empty",
    "app_version": "string?empty",
    "env": "string?null",
    "trace_id": "string?null",
    "span_id": "string?null",
    "request_id": "string?null",
    "exception": "string?null",
    "stack": "string?null",
    "fields": "object?empty",
    "labels": "map<string,string>?empty"
  },
  "rules": {
    "encoding": "UTF-8, one JSON object per line (JSONL), trailing newline",
    "separators": [
      ",",
      ":"
    ],
    "ensure_ascii": false,
    "key_order": "exactly `emit_order`; `extra` (unknown) keys appended after",
    "omit_when_empty": {
      "string?empty": "omitted when \"\"",
      "int?zero": "omitted when 0",
      "string?null": "omitted when null",
      "object?empty": "omitted when {}",
      "map<string,string>?empty": "omitted when {}"
    },
    "core_always_present": true,
    "unknown_keys": "preserved verbatim through a round-trip (OB-09 rule 3)"
  }
}
